diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index a84acbcc..51b5b359 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -7,6 +7,7 @@ docs/AbaPaymentInfo.md
docs/AbiFunction.md
docs/AccessRegistryAddressItem.md
docs/AccessRegistryCurrentStateResponse.md
+docs/AccessRegistryCurrentStateResponse2.md
docs/AccessRegistrySummaryResponse.md
docs/AccessType.md
docs/Account.md
@@ -25,6 +26,7 @@ docs/AchAddress.md
docs/AchDestination.md
docs/AchPaymentInfo.md
docs/ActionRecord.md
+docs/ActiveRolesResponse.md
docs/AdapterProcessingResult.md
docs/AddAbiRequestDto.md
docs/AddAssetToExternalWalletRequest.md
@@ -39,6 +41,7 @@ docs/AdditionalInfoRequest.md
docs/AdditionalInfoRequestAdditionalInfo.md
docs/AddressBalanceItemDto.md
docs/AddressBalancePagedResponse.md
+docs/AddressBalancePagedResponse2.md
docs/AddressNotAvailableError.md
docs/AddressRegistryAddVaultOptOutsRequest.md
docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md
@@ -56,6 +59,10 @@ docs/AddressRegistryVaultOptOutItem.md
docs/AddressReverseLookupResponse.md
docs/AlertExposureTypeEnum.md
docs/AlertLevelEnum.md
+docs/AllowlistEntry.md
+docs/AllowlistEntryStatus.md
+docs/AllowlistMetadata.md
+docs/AllowlistResponse.md
docs/AmlAlert.md
docs/AmlMatchedRule.md
docs/AmlRegistrationResult.md
@@ -121,6 +128,7 @@ docs/AuthorizationGroups.md
docs/AuthorizationInfo.md
docs/BalanceHistoryItemDto.md
docs/BalanceHistoryPagedResponse.md
+docs/BalanceHistoryPagedResponse2.md
docs/BankAddress.md
docs/BaseProvider.md
docs/BasicAddressRequest.md
@@ -196,6 +204,7 @@ docs/ConnectedAccountTotalBalance.md
docs/ConnectedAccountTradingPair.md
docs/ConnectedAccountTradingPairSupportedType.md
docs/ConnectedAccountTradingPairsResponse.md
+docs/ConnectedAccountType.md
docs/ConnectedAccountsBetaApi.md
docs/ConnectedAccountsResponse.md
docs/ConnectedSingleAccount.md
@@ -587,6 +596,9 @@ docs/OffersResponse.md
docs/OnchainDataApi.md
docs/OnchainTransaction.md
docs/OnchainTransactionsPagedResponse.md
+docs/OnchainTransactionsPagedResponse2.md
+docs/OnchainTransferEvent.md
+docs/OnchainTransfersPagedResponse.md
docs/OneTimeAddress.md
docs/OneTimeAddressAccount.md
docs/OneTimeAddressPeerType.md
@@ -595,6 +607,9 @@ docs/OperationExecutionFailure.md
docs/Opportunity.md
docs/OrderDetails.md
docs/OrderExecutionStep.md
+docs/OrderRequirementAllowedFileType.md
+docs/OrderRequirementDetails.md
+docs/OrderRequirementFile.md
docs/OrderSide.md
docs/OrderStatus.md
docs/OrderSummary.md
@@ -636,6 +651,7 @@ docs/PeerAdapterInfo.md
docs/PeerType.md
docs/PersonalEntityTypeEnum.md
docs/PersonalIdentification.md
+docs/PersonalIdentificationDocument.md
docs/PersonalIdentificationFullName.md
docs/PersonalIdentificationType.md
docs/PixAddress.md
@@ -663,6 +679,7 @@ docs/PolicyVerdictActionEnum.md
docs/PolicyVerdictActionEnum2.md
docs/Position.md
docs/Position2.md
+docs/PositionRelatedTransaction.md
docs/PostalAddress.md
docs/PreScreening.md
docs/PrefundedSettlement.md
@@ -727,6 +744,7 @@ docs/RetryRequoteTypeEnum.md
docs/RewardInfo.md
docs/RewardsInfo.md
docs/RoleDetails.md
+docs/RoleDetails2.md
docs/RoleGrantee.md
docs/SEPAAddress.md
docs/SEPADestination.md
@@ -847,10 +865,12 @@ docs/StakeRequest.md
docs/StakeResponse.md
docs/StakingApi.md
docs/StakingErrorSchema.md
+docs/StakingPositionRelatedTransactionsPaginatedResponse.md
docs/StakingPositionsPaginatedResponse.md
docs/StakingProvider.md
docs/Status.md
docs/StellarRippleCreateParamsDto.md
+docs/SubmitOrderRequirementRequest.md
docs/SupportedBlockChainsResponse.md
docs/SupportedBlockchain.md
docs/SwiftAddress.md
@@ -974,11 +994,13 @@ docs/TokenizationApi.md
docs/TokensPaginatedResponse.md
docs/TotalSupplyItemDto.md
docs/TotalSupplyPagedResponse.md
+docs/TotalSupplyPagedResponse2.md
docs/TradingAccountType.md
docs/TradingBetaApi.md
docs/TradingErrorSchema.md
docs/TradingProvider.md
docs/Transaction.md
+docs/TransactionConfigurations.md
docs/TransactionDirection.md
docs/TransactionFee.md
docs/TransactionOperation.md
@@ -1012,6 +1034,7 @@ docs/TransferPeerPathSubType.md
docs/TransferPeerPathType.md
docs/TransferPeerSubTypeEnum.md
docs/TransferPeerTypeEnum.md
+docs/TransferPeerTypeEnum2.md
docs/TransferRail.md
docs/TransferReceipt.md
docs/TransferValidationFailure.md
@@ -1128,6 +1151,8 @@ docs/Web3ConnectionsApi.md
docs/Webhook.md
docs/WebhookEvent.md
docs/WebhookMetric.md
+docs/WebhookMtls.md
+docs/WebhookMtlsCsrResponse.md
docs/WebhookPaginatedResponse.md
docs/WebhooksApi.md
docs/WebhooksV2Api.md
@@ -1208,6 +1233,7 @@ fireblocks/models/aba_payment_info.py
fireblocks/models/abi_function.py
fireblocks/models/access_registry_address_item.py
fireblocks/models/access_registry_current_state_response.py
+fireblocks/models/access_registry_current_state_response2.py
fireblocks/models/access_registry_summary_response.py
fireblocks/models/access_type.py
fireblocks/models/account.py
@@ -1226,6 +1252,7 @@ fireblocks/models/ach_address.py
fireblocks/models/ach_destination.py
fireblocks/models/ach_payment_info.py
fireblocks/models/action_record.py
+fireblocks/models/active_roles_response.py
fireblocks/models/adapter_processing_result.py
fireblocks/models/add_abi_request_dto.py
fireblocks/models/add_asset_to_external_wallet_request.py
@@ -1240,6 +1267,7 @@ fireblocks/models/additional_info_request.py
fireblocks/models/additional_info_request_additional_info.py
fireblocks/models/address_balance_item_dto.py
fireblocks/models/address_balance_paged_response.py
+fireblocks/models/address_balance_paged_response2.py
fireblocks/models/address_not_available_error.py
fireblocks/models/address_registry_add_vault_opt_outs_request.py
fireblocks/models/address_registry_add_vault_opt_outs_request_vault_account_ids_inner.py
@@ -1257,6 +1285,10 @@ 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/allowlist_entry.py
+fireblocks/models/allowlist_entry_status.py
+fireblocks/models/allowlist_metadata.py
+fireblocks/models/allowlist_response.py
fireblocks/models/aml_alert.py
fireblocks/models/aml_matched_rule.py
fireblocks/models/aml_registration_result.py
@@ -1321,6 +1353,7 @@ fireblocks/models/authorization_groups.py
fireblocks/models/authorization_info.py
fireblocks/models/balance_history_item_dto.py
fireblocks/models/balance_history_paged_response.py
+fireblocks/models/balance_history_paged_response2.py
fireblocks/models/bank_address.py
fireblocks/models/base_provider.py
fireblocks/models/basic_address_request.py
@@ -1393,6 +1426,7 @@ fireblocks/models/connected_account_total_balance.py
fireblocks/models/connected_account_trading_pair.py
fireblocks/models/connected_account_trading_pair_supported_type.py
fireblocks/models/connected_account_trading_pairs_response.py
+fireblocks/models/connected_account_type.py
fireblocks/models/connected_accounts_response.py
fireblocks/models/connected_single_account.py
fireblocks/models/connected_single_account_response.py
@@ -1762,6 +1796,9 @@ fireblocks/models/offer.py
fireblocks/models/offers_response.py
fireblocks/models/onchain_transaction.py
fireblocks/models/onchain_transactions_paged_response.py
+fireblocks/models/onchain_transactions_paged_response2.py
+fireblocks/models/onchain_transfer_event.py
+fireblocks/models/onchain_transfers_paged_response.py
fireblocks/models/one_time_address.py
fireblocks/models/one_time_address_account.py
fireblocks/models/one_time_address_peer_type.py
@@ -1770,6 +1807,9 @@ fireblocks/models/operation_execution_failure.py
fireblocks/models/opportunity.py
fireblocks/models/order_details.py
fireblocks/models/order_execution_step.py
+fireblocks/models/order_requirement_allowed_file_type.py
+fireblocks/models/order_requirement_details.py
+fireblocks/models/order_requirement_file.py
fireblocks/models/order_side.py
fireblocks/models/order_status.py
fireblocks/models/order_summary.py
@@ -1810,6 +1850,7 @@ fireblocks/models/peer_adapter_info.py
fireblocks/models/peer_type.py
fireblocks/models/personal_entity_type_enum.py
fireblocks/models/personal_identification.py
+fireblocks/models/personal_identification_document.py
fireblocks/models/personal_identification_full_name.py
fireblocks/models/personal_identification_type.py
fireblocks/models/pix_address.py
@@ -1835,6 +1876,7 @@ fireblocks/models/policy_verdict_action_enum.py
fireblocks/models/policy_verdict_action_enum2.py
fireblocks/models/position.py
fireblocks/models/position2.py
+fireblocks/models/position_related_transaction.py
fireblocks/models/postal_address.py
fireblocks/models/pre_screening.py
fireblocks/models/prefunded_settlement.py
@@ -1898,6 +1940,7 @@ fireblocks/models/retry_requote_type_enum.py
fireblocks/models/reward_info.py
fireblocks/models/rewards_info.py
fireblocks/models/role_details.py
+fireblocks/models/role_details2.py
fireblocks/models/role_grantee.py
fireblocks/models/scope_item.py
fireblocks/models/scope_item_failure.py
@@ -2016,10 +2059,12 @@ fireblocks/models/st_eth_blockchain_data.py
fireblocks/models/stake_request.py
fireblocks/models/stake_response.py
fireblocks/models/staking_error_schema.py
+fireblocks/models/staking_position_related_transactions_paginated_response.py
fireblocks/models/staking_positions_paginated_response.py
fireblocks/models/staking_provider.py
fireblocks/models/status.py
fireblocks/models/stellar_ripple_create_params_dto.py
+fireblocks/models/submit_order_requirement_request.py
fireblocks/models/supported_block_chains_response.py
fireblocks/models/supported_blockchain.py
fireblocks/models/swift_address.py
@@ -2050,6 +2095,7 @@ fireblocks/models/token_response.py
fireblocks/models/tokens_paginated_response.py
fireblocks/models/total_supply_item_dto.py
fireblocks/models/total_supply_paged_response.py
+fireblocks/models/total_supply_paged_response2.py
fireblocks/models/tr_link_amount.py
fireblocks/models/tr_link_api_paged_response.py
fireblocks/models/tr_link_assess_travel_rule_request.py
@@ -2144,6 +2190,7 @@ fireblocks/models/trading_account_type.py
fireblocks/models/trading_error_schema.py
fireblocks/models/trading_provider.py
fireblocks/models/transaction.py
+fireblocks/models/transaction_configurations.py
fireblocks/models/transaction_direction.py
fireblocks/models/transaction_fee.py
fireblocks/models/transaction_operation.py
@@ -2176,6 +2223,7 @@ fireblocks/models/transfer_peer_path_sub_type.py
fireblocks/models/transfer_peer_path_type.py
fireblocks/models/transfer_peer_sub_type_enum.py
fireblocks/models/transfer_peer_type_enum.py
+fireblocks/models/transfer_peer_type_enum2.py
fireblocks/models/transfer_rail.py
fireblocks/models/transfer_receipt.py
fireblocks/models/transfer_validation_failure.py
@@ -2286,6 +2334,8 @@ fireblocks/models/wallet_asset_additional_info.py
fireblocks/models/webhook.py
fireblocks/models/webhook_event.py
fireblocks/models/webhook_metric.py
+fireblocks/models/webhook_mtls.py
+fireblocks/models/webhook_mtls_csr_response.py
fireblocks/models/webhook_paginated_response.py
fireblocks/models/withdraw_request.py
fireblocks/models/workflow_config_status.py
@@ -2323,6 +2373,7 @@ test/test_aba_payment_info.py
test/test_abi_function.py
test/test_access_registry_address_item.py
test/test_access_registry_current_state_response.py
+test/test_access_registry_current_state_response2.py
test/test_access_registry_summary_response.py
test/test_access_type.py
test/test_account.py
@@ -2341,6 +2392,7 @@ test/test_ach_address.py
test/test_ach_destination.py
test/test_ach_payment_info.py
test/test_action_record.py
+test/test_active_roles_response.py
test/test_adapter_processing_result.py
test/test_add_abi_request_dto.py
test/test_add_asset_to_external_wallet_request.py
@@ -2355,6 +2407,7 @@ test/test_additional_info_request.py
test/test_additional_info_request_additional_info.py
test/test_address_balance_item_dto.py
test/test_address_balance_paged_response.py
+test/test_address_balance_paged_response2.py
test/test_address_not_available_error.py
test/test_address_registry_add_vault_opt_outs_request.py
test/test_address_registry_add_vault_opt_outs_request_vault_account_ids_inner.py
@@ -2372,6 +2425,10 @@ 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_allowlist_entry.py
+test/test_allowlist_entry_status.py
+test/test_allowlist_metadata.py
+test/test_allowlist_response.py
test/test_aml_alert.py
test/test_aml_matched_rule.py
test/test_aml_registration_result.py
@@ -2438,6 +2495,7 @@ test/test_authorization_groups.py
test/test_authorization_info.py
test/test_balance_history_item_dto.py
test/test_balance_history_paged_response.py
+test/test_balance_history_paged_response2.py
test/test_bank_address.py
test/test_base_provider.py
test/test_basic_address_request.py
@@ -2513,6 +2571,7 @@ test/test_connected_account_total_balance.py
test/test_connected_account_trading_pair.py
test/test_connected_account_trading_pair_supported_type.py
test/test_connected_account_trading_pairs_response.py
+test/test_connected_account_type.py
test/test_connected_accounts_beta_api.py
test/test_connected_accounts_response.py
test/test_connected_single_account.py
@@ -2903,6 +2962,9 @@ test/test_offers_response.py
test/test_onchain_data_api.py
test/test_onchain_transaction.py
test/test_onchain_transactions_paged_response.py
+test/test_onchain_transactions_paged_response2.py
+test/test_onchain_transfer_event.py
+test/test_onchain_transfers_paged_response.py
test/test_one_time_address.py
test/test_one_time_address_account.py
test/test_one_time_address_peer_type.py
@@ -2911,6 +2973,9 @@ test/test_operation_execution_failure.py
test/test_opportunity.py
test/test_order_details.py
test/test_order_execution_step.py
+test/test_order_requirement_allowed_file_type.py
+test/test_order_requirement_details.py
+test/test_order_requirement_file.py
test/test_order_side.py
test/test_order_status.py
test/test_order_summary.py
@@ -2953,6 +3018,7 @@ test/test_peer_adapter_info.py
test/test_peer_type.py
test/test_personal_entity_type_enum.py
test/test_personal_identification.py
+test/test_personal_identification_document.py
test/test_personal_identification_full_name.py
test/test_personal_identification_type.py
test/test_pix_address.py
@@ -2980,6 +3046,7 @@ test/test_policy_verdict_action_enum.py
test/test_policy_verdict_action_enum2.py
test/test_position.py
test/test_position2.py
+test/test_position_related_transaction.py
test/test_postal_address.py
test/test_pre_screening.py
test/test_prefunded_settlement.py
@@ -3044,6 +3111,7 @@ test/test_retry_requote_type_enum.py
test/test_reward_info.py
test/test_rewards_info.py
test/test_role_details.py
+test/test_role_details2.py
test/test_role_grantee.py
test/test_scope_item.py
test/test_scope_item_failure.py
@@ -3164,10 +3232,12 @@ test/test_stake_request.py
test/test_stake_response.py
test/test_staking_api.py
test/test_staking_error_schema.py
+test/test_staking_position_related_transactions_paginated_response.py
test/test_staking_positions_paginated_response.py
test/test_staking_provider.py
test/test_status.py
test/test_stellar_ripple_create_params_dto.py
+test/test_submit_order_requirement_request.py
test/test_supported_block_chains_response.py
test/test_supported_blockchain.py
test/test_swift_address.py
@@ -3200,6 +3270,7 @@ test/test_tokenization_api.py
test/test_tokens_paginated_response.py
test/test_total_supply_item_dto.py
test/test_total_supply_paged_response.py
+test/test_total_supply_paged_response2.py
test/test_tr_link_amount.py
test/test_tr_link_api.py
test/test_tr_link_api_paged_response.py
@@ -3296,6 +3367,7 @@ test/test_trading_beta_api.py
test/test_trading_error_schema.py
test/test_trading_provider.py
test/test_transaction.py
+test/test_transaction_configurations.py
test/test_transaction_direction.py
test/test_transaction_fee.py
test/test_transaction_operation.py
@@ -3329,6 +3401,7 @@ test/test_transfer_peer_path_sub_type.py
test/test_transfer_peer_path_type.py
test/test_transfer_peer_sub_type_enum.py
test/test_transfer_peer_type_enum.py
+test/test_transfer_peer_type_enum2.py
test/test_transfer_rail.py
test/test_transfer_receipt.py
test/test_transfer_validation_failure.py
@@ -3445,6 +3518,8 @@ test/test_web3_connections_api.py
test/test_webhook.py
test/test_webhook_event.py
test/test_webhook_metric.py
+test/test_webhook_mtls.py
+test/test_webhook_mtls_csr_response.py
test/test_webhook_paginated_response.py
test/test_webhooks_api.py
test/test_webhooks_v2_api.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 16af0772..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,248 +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).
-
-## [v20.0.0](https://github.com/fireblocks/py-sdk/compare/v18.0.0...v20.0.0) - 2026-06-02
-
-### Merged
-
-- Generated SDK #2839 (major) [`#141`](https://github.com/fireblocks/py-sdk/pull/141)
-
-## [v18.0.0](https://github.com/fireblocks/py-sdk/compare/v17.0.0...v18.0.0) - 2026-05-07
-
-### 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 0c5bb55d..5c982b00 100644
--- a/README.md
+++ b/README.md
@@ -286,11 +286,14 @@ Class | Method | HTTP request | Description
*ComplianceScreeningConfigurationApi* | [**get_screening_configuration**](docs/ComplianceScreeningConfigurationApi.md#get_screening_configuration) | **GET** /screening/travel_rule/policy_configuration | Get Travel Rule Screening Policy Configuration
*ConnectedAccountsBetaApi* | [**disconnect_connected_account**](docs/ConnectedAccountsBetaApi.md#disconnect_connected_account) | **DELETE** /connected_accounts/{accountId} | Disconnect connected account
*ConnectedAccountsBetaApi* | [**get_connected_account**](docs/ConnectedAccountsBetaApi.md#get_connected_account) | **GET** /connected_accounts/{accountId} | Get connected account
+*ConnectedAccountsBetaApi* | [**get_connected_account_allowlist**](docs/ConnectedAccountsBetaApi.md#get_connected_account_allowlist) | **GET** /connected_accounts/{accountId}/allowlist | Get allowlist for connected account
+*ConnectedAccountsBetaApi* | [**get_connected_account_allowlist_entry**](docs/ConnectedAccountsBetaApi.md#get_connected_account_allowlist_entry) | **GET** /connected_accounts/{accountId}/allowlist/{allowlistId} | Get a single allowlist entry for a connected account
*ConnectedAccountsBetaApi* | [**get_connected_account_balances**](docs/ConnectedAccountsBetaApi.md#get_connected_account_balances) | **GET** /connected_accounts/{accountId}/balances | Get balances for an account
*ConnectedAccountsBetaApi* | [**get_connected_account_rates**](docs/ConnectedAccountsBetaApi.md#get_connected_account_rates) | **GET** /connected_accounts/{accountId}/rates | Get exchange rates for an account
*ConnectedAccountsBetaApi* | [**get_connected_account_trading_pairs**](docs/ConnectedAccountsBetaApi.md#get_connected_account_trading_pairs) | **GET** /connected_accounts/{accountId}/manifest/capabilities/trading/pairs | Get supported trading pairs for an account
*ConnectedAccountsBetaApi* | [**get_connected_accounts**](docs/ConnectedAccountsBetaApi.md#get_connected_accounts) | **GET** /connected_accounts | Get connected accounts
*ConnectedAccountsBetaApi* | [**rename_connected_account**](docs/ConnectedAccountsBetaApi.md#rename_connected_account) | **POST** /connected_accounts/{accountId}/rename | Rename Connected Account
+*ConnectedAccountsBetaApi* | [**sync_connected_account_allowlist**](docs/ConnectedAccountsBetaApi.md#sync_connected_account_allowlist) | **POST** /connected_accounts/{accountId}/allowlist/sync | Sync allowlist for connected account
*ConsoleUserApi* | [**create_console_user**](docs/ConsoleUserApi.md#create_console_user) | **POST** /management/users | Create console user
*ConsoleUserApi* | [**get_console_users**](docs/ConsoleUserApi.md#get_console_users) | **GET** /management/users | Get console users
*ContractInteractionsApi* | [**decode_contract_data**](docs/ContractInteractionsApi.md#decode_contract_data) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/decode | Decode a function call data, error, or event log
@@ -482,6 +485,7 @@ Class | Method | HTTP request | Description
*StakingApi* | [**get_chain_info**](docs/StakingApi.md#get_chain_info) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters
*StakingApi* | [**get_chains**](docs/StakingApi.md#get_chains) | **GET** /staking/chains | List supported staking chains
*StakingApi* | [**get_delegation_by_id**](docs/StakingApi.md#get_delegation_by_id) | **GET** /staking/positions/{id} | Get position details
+*StakingApi* | [**get_position_related_transactions**](docs/StakingApi.md#get_position_related_transactions) | **GET** /staking/positions/{id}/related_transactions | List related transactions for a position
*StakingApi* | [**get_positions**](docs/StakingApi.md#get_positions) | **GET** /staking/positions_paginated | List staking positions (Paginated)
*StakingApi* | [**get_providers**](docs/StakingApi.md#get_providers) | **GET** /staking/providers | List staking providers
*StakingApi* | [**get_summary**](docs/StakingApi.md#get_summary) | **GET** /staking/positions/summary | Get positions summary
@@ -539,6 +543,16 @@ Class | Method | HTTP request | Description
*TokenizationApi* | [**get_linked_token**](docs/TokenizationApi.md#get_linked_token) | **GET** /tokenization/tokens/{id} | Return a linked token
*TokenizationApi* | [**get_linked_tokens**](docs/TokenizationApi.md#get_linked_tokens) | **GET** /tokenization/tokens | List all linked tokens
*TokenizationApi* | [**get_linked_tokens_count**](docs/TokenizationApi.md#get_linked_tokens_count) | **GET** /tokenization/tokens/count | Get the total count of linked tokens
+*TokenizationApi* | [**get_token_access_registry_addresses**](docs/TokenizationApi.md#get_token_access_registry_addresses) | **GET** /tokenization/access_registries/{id}/addresses | Get current state of addresses in an access registry
+*TokenizationApi* | [**get_token_access_registry_summary**](docs/TokenizationApi.md#get_token_access_registry_summary) | **GET** /tokenization/access_registries/{id}/summary | Get summary of an access registry
+*TokenizationApi* | [**get_token_balance_for_account**](docs/TokenizationApi.md#get_token_balance_for_account) | **GET** /tokenization/tokens/{id}/balances/{accountAddress} | Get the latest balance for a specific account
+*TokenizationApi* | [**get_token_balance_history**](docs/TokenizationApi.md#get_token_balance_history) | **GET** /tokenization/tokens/{id}/balances/{accountAddress}/history | Get balance history for a specific account
+*TokenizationApi* | [**get_token_balances**](docs/TokenizationApi.md#get_token_balances) | **GET** /tokenization/tokens/{id}/balances | Get latest balances for all holders of a token
+*TokenizationApi* | [**get_token_contract_summary**](docs/TokenizationApi.md#get_token_contract_summary) | **GET** /tokenization/tokens/{id}/summary | Get onchain summary for a token
+*TokenizationApi* | [**get_token_rbac**](docs/TokenizationApi.md#get_token_rbac) | **GET** /tokenization/tokens/{id}/rbac | Get active RBAC roles for a token
+*TokenizationApi* | [**get_token_total_supply**](docs/TokenizationApi.md#get_token_total_supply) | **GET** /tokenization/tokens/{id}/total_supply | Get historical total supply for a token
+*TokenizationApi* | [**get_token_transactions**](docs/TokenizationApi.md#get_token_transactions) | **GET** /tokenization/tokens/{id}/transactions | Get onchain transactions for a token
+*TokenizationApi* | [**get_token_transfers**](docs/TokenizationApi.md#get_token_transfers) | **GET** /tokenization/tokens/{id}/transfers | Get onchain transfers for a token
*TokenizationApi* | [**issue_new_token**](docs/TokenizationApi.md#issue_new_token) | **POST** /tokenization/tokens | Issue a new token
*TokenizationApi* | [**issue_token_multi_chain**](docs/TokenizationApi.md#issue_token_multi_chain) | **POST** /tokenization/multichain/tokens | Issue a token on one or more blockchains
*TokenizationApi* | [**link**](docs/TokenizationApi.md#link) | **POST** /tokenization/tokens/link | Link a contract
@@ -555,9 +569,12 @@ Class | Method | HTTP request | Description
*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_order_requirements**](docs/TradingBetaApi.md#get_order_requirements) | **GET** /trading/orders/{orderId}/requirement | Get order requirement details for an order
*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
*TradingBetaApi* | [**get_trading_providers**](docs/TradingBetaApi.md#get_trading_providers) | **GET** /trading/providers | Get providers
+*TradingBetaApi* | [**submit_order_requirements**](docs/TradingBetaApi.md#submit_order_requirements) | **POST** /trading/orders/{orderId}/requirement/data | Submit a response to an order requirement
+*TradingBetaApi* | [**upload_order_requirement_file**](docs/TradingBetaApi.md#upload_order_requirement_file) | **POST** /trading/orders/{orderId}/requirement/file | Upload a file for an order requirement
*TransactionsApi* | [**cancel_transaction**](docs/TransactionsApi.md#cancel_transaction) | **POST** /transactions/{txId}/cancel | Cancel a transaction
*TransactionsApi* | [**create_transaction**](docs/TransactionsApi.md#create_transaction) | **POST** /transactions | Create a new transaction
*TransactionsApi* | [**drop_transaction**](docs/TransactionsApi.md#drop_transaction) | **POST** /transactions/{txId}/drop | Drop ETH (EVM) transaction by ID
@@ -630,6 +647,7 @@ Class | Method | HTTP request | Description
*WebhooksV2Api* | [**create_webhook**](docs/WebhooksV2Api.md#create_webhook) | **POST** /webhooks | Create a new webhook
*WebhooksV2Api* | [**delete_webhook**](docs/WebhooksV2Api.md#delete_webhook) | **DELETE** /webhooks/{webhookId} | Delete webhook
*WebhooksV2Api* | [**get_metrics**](docs/WebhooksV2Api.md#get_metrics) | **GET** /webhooks/{webhookId}/metrics/{metricName} | Get webhook metrics
+*WebhooksV2Api* | [**get_mtls_csr**](docs/WebhooksV2Api.md#get_mtls_csr) | **GET** /webhooks/mtls/csr | Get mTLS CSR
*WebhooksV2Api* | [**get_notification**](docs/WebhooksV2Api.md#get_notification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id
*WebhooksV2Api* | [**get_notification_attempts**](docs/WebhooksV2Api.md#get_notification_attempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts
*WebhooksV2Api* | [**get_notifications**](docs/WebhooksV2Api.md#get_notifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id
@@ -654,6 +672,7 @@ Class | Method | HTTP request | Description
- [AbiFunction](docs/AbiFunction.md)
- [AccessRegistryAddressItem](docs/AccessRegistryAddressItem.md)
- [AccessRegistryCurrentStateResponse](docs/AccessRegistryCurrentStateResponse.md)
+ - [AccessRegistryCurrentStateResponse2](docs/AccessRegistryCurrentStateResponse2.md)
- [AccessRegistrySummaryResponse](docs/AccessRegistrySummaryResponse.md)
- [AccessType](docs/AccessType.md)
- [Account](docs/Account.md)
@@ -672,6 +691,7 @@ Class | Method | HTTP request | Description
- [AchDestination](docs/AchDestination.md)
- [AchPaymentInfo](docs/AchPaymentInfo.md)
- [ActionRecord](docs/ActionRecord.md)
+ - [ActiveRolesResponse](docs/ActiveRolesResponse.md)
- [AdapterProcessingResult](docs/AdapterProcessingResult.md)
- [AddAbiRequestDto](docs/AddAbiRequestDto.md)
- [AddAssetToExternalWalletRequest](docs/AddAssetToExternalWalletRequest.md)
@@ -686,6 +706,7 @@ Class | Method | HTTP request | Description
- [AdditionalInfoRequestAdditionalInfo](docs/AdditionalInfoRequestAdditionalInfo.md)
- [AddressBalanceItemDto](docs/AddressBalanceItemDto.md)
- [AddressBalancePagedResponse](docs/AddressBalancePagedResponse.md)
+ - [AddressBalancePagedResponse2](docs/AddressBalancePagedResponse2.md)
- [AddressNotAvailableError](docs/AddressNotAvailableError.md)
- [AddressRegistryAddVaultOptOutsRequest](docs/AddressRegistryAddVaultOptOutsRequest.md)
- [AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner](docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md)
@@ -703,6 +724,10 @@ Class | Method | HTTP request | Description
- [AddressReverseLookupResponse](docs/AddressReverseLookupResponse.md)
- [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md)
- [AlertLevelEnum](docs/AlertLevelEnum.md)
+ - [AllowlistEntry](docs/AllowlistEntry.md)
+ - [AllowlistEntryStatus](docs/AllowlistEntryStatus.md)
+ - [AllowlistMetadata](docs/AllowlistMetadata.md)
+ - [AllowlistResponse](docs/AllowlistResponse.md)
- [AmlAlert](docs/AmlAlert.md)
- [AmlMatchedRule](docs/AmlMatchedRule.md)
- [AmlRegistrationResult](docs/AmlRegistrationResult.md)
@@ -766,6 +791,7 @@ Class | Method | HTTP request | Description
- [AuthorizationInfo](docs/AuthorizationInfo.md)
- [BalanceHistoryItemDto](docs/BalanceHistoryItemDto.md)
- [BalanceHistoryPagedResponse](docs/BalanceHistoryPagedResponse.md)
+ - [BalanceHistoryPagedResponse2](docs/BalanceHistoryPagedResponse2.md)
- [BankAddress](docs/BankAddress.md)
- [BaseProvider](docs/BaseProvider.md)
- [BasicAddressRequest](docs/BasicAddressRequest.md)
@@ -838,6 +864,7 @@ Class | Method | HTTP request | Description
- [ConnectedAccountTradingPair](docs/ConnectedAccountTradingPair.md)
- [ConnectedAccountTradingPairSupportedType](docs/ConnectedAccountTradingPairSupportedType.md)
- [ConnectedAccountTradingPairsResponse](docs/ConnectedAccountTradingPairsResponse.md)
+ - [ConnectedAccountType](docs/ConnectedAccountType.md)
- [ConnectedAccountsResponse](docs/ConnectedAccountsResponse.md)
- [ConnectedSingleAccount](docs/ConnectedSingleAccount.md)
- [ConnectedSingleAccountResponse](docs/ConnectedSingleAccountResponse.md)
@@ -1207,6 +1234,9 @@ Class | Method | HTTP request | Description
- [OffersResponse](docs/OffersResponse.md)
- [OnchainTransaction](docs/OnchainTransaction.md)
- [OnchainTransactionsPagedResponse](docs/OnchainTransactionsPagedResponse.md)
+ - [OnchainTransactionsPagedResponse2](docs/OnchainTransactionsPagedResponse2.md)
+ - [OnchainTransferEvent](docs/OnchainTransferEvent.md)
+ - [OnchainTransfersPagedResponse](docs/OnchainTransfersPagedResponse.md)
- [OneTimeAddress](docs/OneTimeAddress.md)
- [OneTimeAddressAccount](docs/OneTimeAddressAccount.md)
- [OneTimeAddressPeerType](docs/OneTimeAddressPeerType.md)
@@ -1215,6 +1245,9 @@ Class | Method | HTTP request | Description
- [Opportunity](docs/Opportunity.md)
- [OrderDetails](docs/OrderDetails.md)
- [OrderExecutionStep](docs/OrderExecutionStep.md)
+ - [OrderRequirementAllowedFileType](docs/OrderRequirementAllowedFileType.md)
+ - [OrderRequirementDetails](docs/OrderRequirementDetails.md)
+ - [OrderRequirementFile](docs/OrderRequirementFile.md)
- [OrderSide](docs/OrderSide.md)
- [OrderStatus](docs/OrderStatus.md)
- [OrderSummary](docs/OrderSummary.md)
@@ -1255,6 +1288,7 @@ Class | Method | HTTP request | Description
- [PeerType](docs/PeerType.md)
- [PersonalEntityTypeEnum](docs/PersonalEntityTypeEnum.md)
- [PersonalIdentification](docs/PersonalIdentification.md)
+ - [PersonalIdentificationDocument](docs/PersonalIdentificationDocument.md)
- [PersonalIdentificationFullName](docs/PersonalIdentificationFullName.md)
- [PersonalIdentificationType](docs/PersonalIdentificationType.md)
- [PixAddress](docs/PixAddress.md)
@@ -1280,6 +1314,7 @@ Class | Method | HTTP request | Description
- [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md)
- [Position](docs/Position.md)
- [Position2](docs/Position2.md)
+ - [PositionRelatedTransaction](docs/PositionRelatedTransaction.md)
- [PostalAddress](docs/PostalAddress.md)
- [PreScreening](docs/PreScreening.md)
- [PrefundedSettlement](docs/PrefundedSettlement.md)
@@ -1343,6 +1378,7 @@ Class | Method | HTTP request | Description
- [RewardInfo](docs/RewardInfo.md)
- [RewardsInfo](docs/RewardsInfo.md)
- [RoleDetails](docs/RoleDetails.md)
+ - [RoleDetails2](docs/RoleDetails2.md)
- [RoleGrantee](docs/RoleGrantee.md)
- [SEPAAddress](docs/SEPAAddress.md)
- [SEPADestination](docs/SEPADestination.md)
@@ -1461,10 +1497,12 @@ Class | Method | HTTP request | Description
- [StakeRequest](docs/StakeRequest.md)
- [StakeResponse](docs/StakeResponse.md)
- [StakingErrorSchema](docs/StakingErrorSchema.md)
+ - [StakingPositionRelatedTransactionsPaginatedResponse](docs/StakingPositionRelatedTransactionsPaginatedResponse.md)
- [StakingPositionsPaginatedResponse](docs/StakingPositionsPaginatedResponse.md)
- [StakingProvider](docs/StakingProvider.md)
- [Status](docs/Status.md)
- [StellarRippleCreateParamsDto](docs/StellarRippleCreateParamsDto.md)
+ - [SubmitOrderRequirementRequest](docs/SubmitOrderRequirementRequest.md)
- [SupportedBlockChainsResponse](docs/SupportedBlockChainsResponse.md)
- [SupportedBlockchain](docs/SupportedBlockchain.md)
- [SwiftAddress](docs/SwiftAddress.md)
@@ -1585,10 +1623,12 @@ Class | Method | HTTP request | Description
- [TokensPaginatedResponse](docs/TokensPaginatedResponse.md)
- [TotalSupplyItemDto](docs/TotalSupplyItemDto.md)
- [TotalSupplyPagedResponse](docs/TotalSupplyPagedResponse.md)
+ - [TotalSupplyPagedResponse2](docs/TotalSupplyPagedResponse2.md)
- [TradingAccountType](docs/TradingAccountType.md)
- [TradingErrorSchema](docs/TradingErrorSchema.md)
- [TradingProvider](docs/TradingProvider.md)
- [Transaction](docs/Transaction.md)
+ - [TransactionConfigurations](docs/TransactionConfigurations.md)
- [TransactionDirection](docs/TransactionDirection.md)
- [TransactionFee](docs/TransactionFee.md)
- [TransactionOperation](docs/TransactionOperation.md)
@@ -1621,6 +1661,7 @@ Class | Method | HTTP request | Description
- [TransferPeerPathType](docs/TransferPeerPathType.md)
- [TransferPeerSubTypeEnum](docs/TransferPeerSubTypeEnum.md)
- [TransferPeerTypeEnum](docs/TransferPeerTypeEnum.md)
+ - [TransferPeerTypeEnum2](docs/TransferPeerTypeEnum2.md)
- [TransferRail](docs/TransferRail.md)
- [TransferReceipt](docs/TransferReceipt.md)
- [TransferValidationFailure](docs/TransferValidationFailure.md)
@@ -1731,6 +1772,8 @@ Class | Method | HTTP request | Description
- [Webhook](docs/Webhook.md)
- [WebhookEvent](docs/WebhookEvent.md)
- [WebhookMetric](docs/WebhookMetric.md)
+ - [WebhookMtls](docs/WebhookMtls.md)
+ - [WebhookMtlsCsrResponse](docs/WebhookMtlsCsrResponse.md)
- [WebhookPaginatedResponse](docs/WebhookPaginatedResponse.md)
- [WithdrawRequest](docs/WithdrawRequest.md)
- [WorkflowConfigStatus](docs/WorkflowConfigStatus.md)
diff --git a/docs/AccessRegistryCurrentStateResponse2.md b/docs/AccessRegistryCurrentStateResponse2.md
new file mode 100644
index 00000000..25fb3534
--- /dev/null
+++ b/docs/AccessRegistryCurrentStateResponse2.md
@@ -0,0 +1,32 @@
+# AccessRegistryCurrentStateResponse2
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[AccessRegistryAddressItem]**](AccessRegistryAddressItem.md) | Array of active addresses in the access registry |
+**next** | **str** | Cursor for next page | [optional]
+**prev** | **str** | Cursor for previous page | [optional]
+**total** | **float** | Total count of active addresses in the access registry | [optional]
+
+## Example
+
+```python
+from fireblocks.models.access_registry_current_state_response2 import AccessRegistryCurrentStateResponse2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AccessRegistryCurrentStateResponse2 from a JSON string
+access_registry_current_state_response2_instance = AccessRegistryCurrentStateResponse2.from_json(json)
+# print the JSON string representation of the object
+print(AccessRegistryCurrentStateResponse2.to_json())
+
+# convert the object into a dict
+access_registry_current_state_response2_dict = access_registry_current_state_response2_instance.to_dict()
+# create an instance of AccessRegistryCurrentStateResponse2 from a dict
+access_registry_current_state_response2_from_dict = AccessRegistryCurrentStateResponse2.from_dict(access_registry_current_state_response2_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/ActiveRolesResponse.md b/docs/ActiveRolesResponse.md
new file mode 100644
index 00000000..71e225e5
--- /dev/null
+++ b/docs/ActiveRolesResponse.md
@@ -0,0 +1,29 @@
+# ActiveRolesResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**active_roles** | [**Dict[str, RoleDetails]**](RoleDetails.md) | Active RBAC roles on the contract, keyed by role name (e.g. DEFAULT_ADMIN_ROLE, MINTER_ROLE). Each entry contains the on-chain role hash, a human-readable description, and the list of accounts currently granted that role. |
+
+## Example
+
+```python
+from fireblocks.models.active_roles_response import ActiveRolesResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ActiveRolesResponse from a JSON string
+active_roles_response_instance = ActiveRolesResponse.from_json(json)
+# print the JSON string representation of the object
+print(ActiveRolesResponse.to_json())
+
+# convert the object into a dict
+active_roles_response_dict = active_roles_response_instance.to_dict()
+# create an instance of ActiveRolesResponse from a dict
+active_roles_response_from_dict = ActiveRolesResponse.from_dict(active_roles_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/AddressBalancePagedResponse2.md b/docs/AddressBalancePagedResponse2.md
new file mode 100644
index 00000000..542dfb5a
--- /dev/null
+++ b/docs/AddressBalancePagedResponse2.md
@@ -0,0 +1,32 @@
+# AddressBalancePagedResponse2
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[AddressBalanceItemDto]**](AddressBalanceItemDto.md) | Array of address balance data |
+**next** | **str** | Cursor for next page | [optional]
+**prev** | **str** | Cursor for previous page (reserved for future support) | [optional]
+**total** | **float** | Total count of items | [optional]
+
+## Example
+
+```python
+from fireblocks.models.address_balance_paged_response2 import AddressBalancePagedResponse2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AddressBalancePagedResponse2 from a JSON string
+address_balance_paged_response2_instance = AddressBalancePagedResponse2.from_json(json)
+# print the JSON string representation of the object
+print(AddressBalancePagedResponse2.to_json())
+
+# convert the object into a dict
+address_balance_paged_response2_dict = address_balance_paged_response2_instance.to_dict()
+# create an instance of AddressBalancePagedResponse2 from a dict
+address_balance_paged_response2_from_dict = AddressBalancePagedResponse2.from_dict(address_balance_paged_response2_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/AllowlistEntry.md b/docs/AllowlistEntry.md
new file mode 100644
index 00000000..32f8cc55
--- /dev/null
+++ b/docs/AllowlistEntry.md
@@ -0,0 +1,38 @@
+# AllowlistEntry
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Unique identifier for the allowlist entry |
+**address** | **str** | The blockchain address |
+**assets** | **List[str]** | Assets approved for this address. Each value is either a Fireblocks asset ID (when the provider's asset maps to a Fireblocks-supported asset) or the raw provider asset symbol (when no mapping exists). Treat values as opaque strings. Possible combinations: - One or more specific asset values (e.g., `[\"BTC\", \"ETH\"]`) See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. |
+**networks** | **List[str]** | Networks approved for this address. Each value is either a Fireblocks network ID (when the provider's network maps to a Fireblocks-supported blockchain) or the raw provider blockchain identifier (when no mapping exists). Treat values as opaque strings. Possible combinations: - One or more specific network values (e.g., `[\"ETHEREUM\", \"POLYGON\"]`) See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. |
+**label** | **str** | Human-readable label for the address | [optional]
+**address_identifier** | **str** | Additional identifier (e.g., memo, destination tag) | [optional]
+**status** | [**AllowlistEntryStatus**](AllowlistEntryStatus.md) | |
+**added_at** | **datetime** | ISO 8601 timestamp when entry was added |
+**provider_reference_id** | **str** | Provider's internal reference ID | [optional]
+**provider_metadata** | **Dict[str, object]** | Provider-specific pass-through data for this address. Treat as an opaque blob: the shape, set of keys, and value types vary by provider, by entry, and over time. Keys may be added, renamed, or removed without notice as providers evolve their integrations or as new providers are added. The example below illustrates one possible shape and is not a contract — do not program against specific keys. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.allowlist_entry import AllowlistEntry
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AllowlistEntry from a JSON string
+allowlist_entry_instance = AllowlistEntry.from_json(json)
+# print the JSON string representation of the object
+print(AllowlistEntry.to_json())
+
+# convert the object into a dict
+allowlist_entry_dict = allowlist_entry_instance.to_dict()
+# create an instance of AllowlistEntry from a dict
+allowlist_entry_from_dict = AllowlistEntry.from_dict(allowlist_entry_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/AllowlistEntryStatus.md b/docs/AllowlistEntryStatus.md
new file mode 100644
index 00000000..cea4848d
--- /dev/null
+++ b/docs/AllowlistEntryStatus.md
@@ -0,0 +1,21 @@
+# AllowlistEntryStatus
+
+Current status of the allowlist entry. - `ACTIVE` — Entry is approved and usable. - `PENDING_PROVIDER_COOLDOWN` — Entry was recently added or modified and is in the provider-enforced cooldown window before becoming active. - `PENDING_PROVIDER_REVIEW` — Entry is awaiting provider-side review. - `PENDING_APPROVAL` — Entry is awaiting customer/admin approval on the Fireblocks side. - `REJECTED` — Entry was rejected at submission time and will not become active. - `REMOVED` — Entry was deactivated after previously being active. May still appear in results for audit purposes.
+
+## Enum
+
+* `ACTIVE` (value: `'ACTIVE'`)
+
+* `PENDING_PROVIDER_COOLDOWN` (value: `'PENDING_PROVIDER_COOLDOWN'`)
+
+* `PENDING_PROVIDER_REVIEW` (value: `'PENDING_PROVIDER_REVIEW'`)
+
+* `PENDING_APPROVAL` (value: `'PENDING_APPROVAL'`)
+
+* `REJECTED` (value: `'REJECTED'`)
+
+* `REMOVED` (value: `'REMOVED'`)
+
+[[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/AllowlistMetadata.md b/docs/AllowlistMetadata.md
new file mode 100644
index 00000000..1a56b78a
--- /dev/null
+++ b/docs/AllowlistMetadata.md
@@ -0,0 +1,31 @@
+# AllowlistMetadata
+
+Allowlist-specific metadata
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**last_synced_at** | **datetime** | ISO 8601 timestamp of last sync with provider | [optional]
+**sync_status** | **str** | Status of last sync operation | [optional]
+
+## Example
+
+```python
+from fireblocks.models.allowlist_metadata import AllowlistMetadata
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AllowlistMetadata from a JSON string
+allowlist_metadata_instance = AllowlistMetadata.from_json(json)
+# print the JSON string representation of the object
+print(AllowlistMetadata.to_json())
+
+# convert the object into a dict
+allowlist_metadata_dict = allowlist_metadata_instance.to_dict()
+# create an instance of AllowlistMetadata from a dict
+allowlist_metadata_from_dict = AllowlistMetadata.from_dict(allowlist_metadata_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/AllowlistResponse.md b/docs/AllowlistResponse.md
new file mode 100644
index 00000000..ba52551e
--- /dev/null
+++ b/docs/AllowlistResponse.md
@@ -0,0 +1,32 @@
+# AllowlistResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[AllowlistEntry]**](AllowlistEntry.md) | Array of allowlist entries |
+**metadata** | [**AllowlistMetadata**](AllowlistMetadata.md) | | [optional]
+**total** | **int** | Total number of allowlist entries |
+**next** | **str** | Cursor for the next page of results, if available | [optional]
+
+## Example
+
+```python
+from fireblocks.models.allowlist_response import AllowlistResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AllowlistResponse from a JSON string
+allowlist_response_instance = AllowlistResponse.from_json(json)
+# print the JSON string representation of the object
+print(AllowlistResponse.to_json())
+
+# convert the object into a dict
+allowlist_response_dict = allowlist_response_instance.to_dict()
+# create an instance of AllowlistResponse from a dict
+allowlist_response_from_dict = AllowlistResponse.from_dict(allowlist_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/BalanceHistoryPagedResponse2.md b/docs/BalanceHistoryPagedResponse2.md
new file mode 100644
index 00000000..1feaa432
--- /dev/null
+++ b/docs/BalanceHistoryPagedResponse2.md
@@ -0,0 +1,32 @@
+# BalanceHistoryPagedResponse2
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[BalanceHistoryItemDto]**](BalanceHistoryItemDto.md) | Array of balance history data points |
+**next** | **str** | Cursor for next page | [optional]
+**prev** | **str** | Cursor for previous page | [optional]
+**total** | **float** | Total count of items | [optional]
+
+## Example
+
+```python
+from fireblocks.models.balance_history_paged_response2 import BalanceHistoryPagedResponse2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of BalanceHistoryPagedResponse2 from a JSON string
+balance_history_paged_response2_instance = BalanceHistoryPagedResponse2.from_json(json)
+# print the JSON string representation of the object
+print(BalanceHistoryPagedResponse2.to_json())
+
+# convert the object into a dict
+balance_history_paged_response2_dict = balance_history_paged_response2_instance.to_dict()
+# create an instance of BalanceHistoryPagedResponse2 from a dict
+balance_history_paged_response2_from_dict = BalanceHistoryPagedResponse2.from_dict(balance_history_paged_response2_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/BusinessIdentification.md b/docs/BusinessIdentification.md
index 1409b742..1999bac3 100644
--- a/docs/BusinessIdentification.md
+++ b/docs/BusinessIdentification.md
@@ -13,6 +13,8 @@ Name | Type | Description | Notes
**postal_address** | [**PostalAddress**](PostalAddress.md) | |
**email** | **str** | | [optional]
**phone** | **str** | Mobile phone number in E.164 format | [optional]
+**date_of_registration** | **date** | The date the business was registered. | [optional]
+**country_of_registration** | **str** | The ISO-3166 Alpha-2 country code where the business is registered. | [optional]
## Example
diff --git a/docs/ConnectedAccount.md b/docs/ConnectedAccount.md
index c15fa734..5c9f218f 100644
--- a/docs/ConnectedAccount.md
+++ b/docs/ConnectedAccount.md
@@ -12,6 +12,9 @@ Name | Type | Description | Notes
**total_balance** | [**ConnectedAccountTotalBalance**](ConnectedAccountTotalBalance.md) | |
**manifest** | [**ConnectedAccountManifest**](ConnectedAccountManifest.md) | |
**parent_id** | **str** | The ID of the parent main account, if this is a sub account. | [optional]
+**api_key** | **str** | The API key identifier used to connect this account. | [optional]
+**provider_account_name** | **str** | The account name provided by the provider. | [optional]
+**account_type** | [**ConnectedAccountType**](ConnectedAccountType.md) | |
## Example
diff --git a/docs/ConnectedAccountType.md b/docs/ConnectedAccountType.md
new file mode 100644
index 00000000..3be6df81
--- /dev/null
+++ b/docs/ConnectedAccountType.md
@@ -0,0 +1,14 @@
+# ConnectedAccountType
+
+
+## Enum
+
+* `EXCHANGE` (value: `'EXCHANGE'`)
+
+* `FIAT` (value: `'FIAT'`)
+
+* `CONNECTED_ACCOUNT` (value: `'CONNECTED_ACCOUNT'`)
+
+[[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/ConnectedAccountsBetaApi.md b/docs/ConnectedAccountsBetaApi.md
index 025dbb4c..0cb57e3d 100644
--- a/docs/ConnectedAccountsBetaApi.md
+++ b/docs/ConnectedAccountsBetaApi.md
@@ -6,11 +6,14 @@ Method | HTTP request | Description
------------- | ------------- | -------------
[**disconnect_connected_account**](ConnectedAccountsBetaApi.md#disconnect_connected_account) | **DELETE** /connected_accounts/{accountId} | Disconnect connected account
[**get_connected_account**](ConnectedAccountsBetaApi.md#get_connected_account) | **GET** /connected_accounts/{accountId} | Get connected account
+[**get_connected_account_allowlist**](ConnectedAccountsBetaApi.md#get_connected_account_allowlist) | **GET** /connected_accounts/{accountId}/allowlist | Get allowlist for connected account
+[**get_connected_account_allowlist_entry**](ConnectedAccountsBetaApi.md#get_connected_account_allowlist_entry) | **GET** /connected_accounts/{accountId}/allowlist/{allowlistId} | Get a single allowlist entry for a connected account
[**get_connected_account_balances**](ConnectedAccountsBetaApi.md#get_connected_account_balances) | **GET** /connected_accounts/{accountId}/balances | Get balances for an account
[**get_connected_account_rates**](ConnectedAccountsBetaApi.md#get_connected_account_rates) | **GET** /connected_accounts/{accountId}/rates | Get exchange rates for an account
[**get_connected_account_trading_pairs**](ConnectedAccountsBetaApi.md#get_connected_account_trading_pairs) | **GET** /connected_accounts/{accountId}/manifest/capabilities/trading/pairs | Get supported trading pairs for an account
[**get_connected_accounts**](ConnectedAccountsBetaApi.md#get_connected_accounts) | **GET** /connected_accounts | Get connected accounts
[**rename_connected_account**](ConnectedAccountsBetaApi.md#rename_connected_account) | **POST** /connected_accounts/{accountId}/rename | Rename Connected Account
+[**sync_connected_account_allowlist**](ConnectedAccountsBetaApi.md#sync_connected_account_allowlist) | **POST** /connected_accounts/{accountId}/allowlist/sync | Sync allowlist for connected account
# **disconnect_connected_account**
@@ -164,6 +167,181 @@ 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_connected_account_allowlist**
+> AllowlistResponse get_connected_account_allowlist(account_id, status=status, asset_id=asset_id, network_id=network_id, address=address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+
+Get allowlist for connected account
+
+Retrieves the address allowlist for a specified connected account.
+
+**Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only.
+
+
+### Example
+
+
+```python
+from fireblocks.models.allowlist_entry_status import AllowlistEntryStatus
+from fireblocks.models.allowlist_response import AllowlistResponse
+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:
+ account_id = 'account_id_example' # str | The connected account identifier
+ status = fireblocks.AllowlistEntryStatus() # AllowlistEntryStatus | Filter by allowlist entry status (optional)
+ asset_id = 'asset_id_example' # str | Filter by Fireblocks asset ID. See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. (optional)
+ network_id = 'network_id_example' # str | Filter by Fireblocks network ID. See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. (optional)
+ address = 'address_example' # str | Filter by specific address (optional)
+ page_cursor = 'page_cursor_example' # str | Pagination cursor for next page (optional)
+ page_size = 56 # int | Maximum number of entries to return (optional)
+ sort_by = addedAt # str | Field to sort results by. (optional) (default to addedAt)
+ order = DESC # str | Sort order (ASC or DESC). (optional) (default to DESC)
+
+ try:
+ # Get allowlist for connected account
+ api_response = fireblocks.connected_accounts_beta.get_connected_account_allowlist(account_id, status=status, asset_id=asset_id, network_id=network_id, address=address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result()
+ print("The response of ConnectedAccountsBetaApi->get_connected_account_allowlist:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ConnectedAccountsBetaApi->get_connected_account_allowlist: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **account_id** | **str**| The connected account identifier |
+ **status** | [**AllowlistEntryStatus**](.md)| Filter by allowlist entry status | [optional]
+ **asset_id** | **str**| Filter by Fireblocks asset ID. See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. | [optional]
+ **network_id** | **str**| Filter by Fireblocks network ID. See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. | [optional]
+ **address** | **str**| Filter by specific address | [optional]
+ **page_cursor** | **str**| Pagination cursor for next page | [optional]
+ **page_size** | **int**| Maximum number of entries to return | [optional]
+ **sort_by** | **str**| Field to sort results by. | [optional] [default to addedAt]
+ **order** | **str**| Sort order (ASC or DESC). | [optional] [default to DESC]
+
+### Return type
+
+[**AllowlistResponse**](AllowlistResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Allowlist entries response | * X-Request-ID -
|
+**404** | Connected account not found | * 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_connected_account_allowlist_entry**
+> AllowlistEntry get_connected_account_allowlist_entry(account_id, allowlist_id)
+
+Get a single allowlist entry for a connected account
+
+Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected account.
+
+**Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only.
+
+
+### Example
+
+
+```python
+from fireblocks.models.allowlist_entry import AllowlistEntry
+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:
+ account_id = 'account_id_example' # str | The connected account identifier
+ allowlist_id = 'allowlist_id_example' # str | The Fireblocks allowlist entry identifier
+
+ try:
+ # Get a single allowlist entry for a connected account
+ api_response = fireblocks.connected_accounts_beta.get_connected_account_allowlist_entry(account_id, allowlist_id).result()
+ print("The response of ConnectedAccountsBetaApi->get_connected_account_allowlist_entry:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ConnectedAccountsBetaApi->get_connected_account_allowlist_entry: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **account_id** | **str**| The connected account identifier |
+ **allowlist_id** | **str**| The Fireblocks allowlist entry identifier |
+
+### Return type
+
+[**AllowlistEntry**](AllowlistEntry.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Allowlist entry response | * X-Request-ID -
|
+**404** | Connected account or allowlist entry not found | * 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_connected_account_balances**
> ConnectedAccountBalancesResponse get_connected_account_balances(account_id, page_size=page_size, page_cursor=page_cursor)
@@ -575,3 +753,80 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **sync_connected_account_allowlist**
+> sync_connected_account_allowlist(account_id, idempotency_key=idempotency_key)
+
+Sync allowlist for connected account
+
+Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data immediately.
+
+**Rate limit:** 1 request per minute per connected account.
+
+**Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only.
+
+
+### Example
+
+
+```python
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+
+# 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:
+ account_id = 'account_id_example' # str | The connected account identifier
+ 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:
+ # Sync allowlist for connected account
+ fireblocks.connected_accounts_beta.sync_connected_account_allowlist(account_id, idempotency_key=idempotency_key).result()
+ except Exception as e:
+ print("Exception when calling ConnectedAccountsBetaApi->sync_connected_account_allowlist: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **account_id** | **str**| The connected account identifier |
+ **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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**202** | Sync request accepted and processing | * 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/ConnectedSingleAccountResponse.md b/docs/ConnectedSingleAccountResponse.md
index 62335482..e4615be0 100644
--- a/docs/ConnectedSingleAccountResponse.md
+++ b/docs/ConnectedSingleAccountResponse.md
@@ -12,6 +12,9 @@ Name | Type | Description | Notes
**total_balance** | [**ConnectedAccountTotalBalance**](ConnectedAccountTotalBalance.md) | |
**manifest** | [**ConnectedAccountManifest**](ConnectedAccountManifest.md) | |
**parent_id** | **str** | The ID of the parent main account, if this is a sub account. | [optional]
+**api_key** | **str** | The API key identifier used to connect this account. | [optional]
+**provider_account_name** | **str** | The account name provided by the provider. | [optional]
+**account_type** | [**ConnectedAccountType**](ConnectedAccountType.md) | |
**sub_accounts_ids** | **List[str]** | IDs of sub-accounts associated with this connected account. | [optional]
## Example
diff --git a/docs/CreateWebhookRequest.md b/docs/CreateWebhookRequest.md
index 1f80f754..95d16ae0 100644
--- a/docs/CreateWebhookRequest.md
+++ b/docs/CreateWebhookRequest.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**description** | **str** | description of the webhook. should not contain special characters. | [optional]
**events** | [**List[WebhookEvent]**](WebhookEvent.md) | event types the webhook will subscribe to |
**enabled** | **bool** | The status of the webhook. If false, the webhook will not receive notifications. | [optional] [default to True]
+**mtls** | [**WebhookMtls**](WebhookMtls.md) | | [optional]
## Example
diff --git a/docs/Identification.md b/docs/Identification.md
index a12ee859..4971fab9 100644
--- a/docs/Identification.md
+++ b/docs/Identification.md
@@ -13,12 +13,16 @@ Name | Type | Description | Notes
**postal_address** | [**PostalAddress**](PostalAddress.md) | |
**email** | **str** | | [optional]
**phone** | **str** | Mobile phone number in E.164 format | [optional]
-**id_number** | **str** | The identification number corresponding to the primary identification document type specified in idType | [optional]
-**id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional]
-**additional_id_number** | **str** | The identification number corresponding to the additional identification document type specified in additionalIdType | [optional]
-**additional_id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional]
+**id_number** | **str** | Deprecated. Use identificationDocuments instead. | [optional]
+**id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | Deprecated. Use identificationDocuments instead. | [optional]
+**additional_id_number** | **str** | Deprecated. Use identificationDocuments instead. | [optional]
+**additional_id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | Deprecated. Use identificationDocuments instead. | [optional]
+**nationality** | **str** | The ISO-3166 Alpha-2 country code representing the individual's nationality. | [optional]
+**identification_documents** | [**List[PersonalIdentificationDocument]**](PersonalIdentificationDocument.md) | List of identification documents for the individual. | [optional]
**business_name** | **str** | |
**registration_number** | **str** | |
+**date_of_registration** | **date** | The date the business was registered. | [optional]
+**country_of_registration** | **str** | The ISO-3166 Alpha-2 country code where the business is registered. | [optional]
## Example
diff --git a/docs/Offer.md b/docs/Offer.md
index d53f168f..54e95f1e 100644
--- a/docs/Offer.md
+++ b/docs/Offer.md
@@ -22,7 +22,7 @@ Name | Type | Description | Notes
**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]
+**required_participants_identification_on_order** | **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/OnchainDataApi.md b/docs/OnchainDataApi.md
index a3a5e289..0e64a35f 100644
--- a/docs/OnchainDataApi.md
+++ b/docs/OnchainDataApi.md
@@ -15,7 +15,7 @@ Method | HTTP request | Description
# **get_access_registry_current_state**
-> AccessRegistryCurrentStateResponse get_access_registry_current_state(base_asset_id, access_registry_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+> AccessRegistryCurrentStateResponse2 get_access_registry_current_state(base_asset_id, access_registry_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
Get the current state of addresses in an access registry
@@ -25,7 +25,7 @@ Returns the current state of addresses in the specified access registry. Only ad
```python
-from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse
+from fireblocks.models.access_registry_current_state_response2 import AccessRegistryCurrentStateResponse2
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -78,7 +78,7 @@ Name | Type | Description | Notes
### Return type
-[**AccessRegistryCurrentStateResponse**](AccessRegistryCurrentStateResponse.md)
+[**AccessRegistryCurrentStateResponse2**](AccessRegistryCurrentStateResponse2.md)
### Authorization
@@ -175,7 +175,7 @@ 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_active_roles_for_contract**
-> Dict[str, RoleDetails] get_active_roles_for_contract(base_asset_id, contract_address)
+> Dict[str, RoleDetails2] get_active_roles_for_contract(base_asset_id, contract_address)
List of active roles for a given contract address and base asset ID
@@ -185,7 +185,7 @@ Returns a list of currently active roles for the specified baseAssetId and contr
```python
-from fireblocks.models.role_details import RoleDetails
+from fireblocks.models.role_details2 import RoleDetails2
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -230,7 +230,7 @@ Name | Type | Description | Notes
### Return type
-[**Dict[str, RoleDetails]**](RoleDetails.md)
+[**Dict[str, RoleDetails2]**](RoleDetails2.md)
### Authorization
@@ -251,7 +251,7 @@ 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_contract_balance_history**
-> BalanceHistoryPagedResponse get_contract_balance_history(base_asset_id, contract_address, account_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+> BalanceHistoryPagedResponse2 get_contract_balance_history(base_asset_id, contract_address, account_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
Get historical balance data for a specific account in a contract
@@ -261,7 +261,7 @@ Returns the paginated balance history of the specified account in a contract wit
```python
-from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse
+from fireblocks.models.balance_history_paged_response2 import BalanceHistoryPagedResponse2
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -322,7 +322,7 @@ Name | Type | Description | Notes
### Return type
-[**BalanceHistoryPagedResponse**](BalanceHistoryPagedResponse.md)
+[**BalanceHistoryPagedResponse2**](BalanceHistoryPagedResponse2.md)
### Authorization
@@ -419,7 +419,7 @@ 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_contract_total_supply**
-> TotalSupplyPagedResponse get_contract_total_supply(base_asset_id, contract_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+> TotalSupplyPagedResponse2 get_contract_total_supply(base_asset_id, contract_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
Get historical total supply data for a contract
@@ -429,7 +429,7 @@ Returns the paginated total supply history of the specified contract with option
```python
-from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse
+from fireblocks.models.total_supply_paged_response2 import TotalSupplyPagedResponse2
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -488,7 +488,7 @@ Name | Type | Description | Notes
### Return type
-[**TotalSupplyPagedResponse**](TotalSupplyPagedResponse.md)
+[**TotalSupplyPagedResponse2**](TotalSupplyPagedResponse2.md)
### Authorization
@@ -509,7 +509,7 @@ 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_latest_balances_for_contract**
-> AddressBalancePagedResponse get_latest_balances_for_contract(base_asset_id, contract_address, account_address=account_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+> AddressBalancePagedResponse2 get_latest_balances_for_contract(base_asset_id, contract_address, account_address=account_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
Get latest balances for all addresses holding tokens from a contract
@@ -519,7 +519,7 @@ Returns the latest balance for each unique address with support for numeric bala
```python
-from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse
+from fireblocks.models.address_balance_paged_response2 import AddressBalancePagedResponse2
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -574,7 +574,7 @@ Name | Type | Description | Notes
### Return type
-[**AddressBalancePagedResponse**](AddressBalancePagedResponse.md)
+[**AddressBalancePagedResponse2**](AddressBalancePagedResponse2.md)
### Authorization
@@ -595,7 +595,7 @@ 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_onchain_transactions**
-> OnchainTransactionsPagedResponse get_onchain_transactions(base_asset_id, contract_address, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+> OnchainTransactionsPagedResponse2 get_onchain_transactions(base_asset_id, contract_address, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
Fetch onchain transactions for a contract
@@ -605,7 +605,7 @@ Returns a paginated list of onchain transactions for the specified contract addr
```python
-from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse
+from fireblocks.models.onchain_transactions_paged_response2 import OnchainTransactionsPagedResponse2
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -662,7 +662,7 @@ Name | Type | Description | Notes
### Return type
-[**OnchainTransactionsPagedResponse**](OnchainTransactionsPagedResponse.md)
+[**OnchainTransactionsPagedResponse2**](OnchainTransactionsPagedResponse2.md)
### Authorization
diff --git a/docs/OnchainTransactionsPagedResponse2.md b/docs/OnchainTransactionsPagedResponse2.md
new file mode 100644
index 00000000..b43b8443
--- /dev/null
+++ b/docs/OnchainTransactionsPagedResponse2.md
@@ -0,0 +1,32 @@
+# OnchainTransactionsPagedResponse2
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[OnchainTransaction]**](OnchainTransaction.md) | Array of onchain transactions |
+**next** | **str** | Cursor for next page | [optional]
+**prev** | **str** | Cursor for previous page | [optional]
+**total** | **float** | Total count of items | [optional]
+
+## Example
+
+```python
+from fireblocks.models.onchain_transactions_paged_response2 import OnchainTransactionsPagedResponse2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OnchainTransactionsPagedResponse2 from a JSON string
+onchain_transactions_paged_response2_instance = OnchainTransactionsPagedResponse2.from_json(json)
+# print the JSON string representation of the object
+print(OnchainTransactionsPagedResponse2.to_json())
+
+# convert the object into a dict
+onchain_transactions_paged_response2_dict = onchain_transactions_paged_response2_instance.to_dict()
+# create an instance of OnchainTransactionsPagedResponse2 from a dict
+onchain_transactions_paged_response2_from_dict = OnchainTransactionsPagedResponse2.from_dict(onchain_transactions_paged_response2_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/OnchainTransferEvent.md b/docs/OnchainTransferEvent.md
new file mode 100644
index 00000000..3238fc54
--- /dev/null
+++ b/docs/OnchainTransferEvent.md
@@ -0,0 +1,41 @@
+# OnchainTransferEvent
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Unique identifier for the transfer event |
+**transaction_hash** | **str** | Hash of the transaction containing this transfer |
+**log_index** | **str** | Index of the log within the transaction |
+**contract_address** | **str** | Address of the token contract |
+**from_address** | **str** | Address that sent the tokens |
+**to_address** | **str** | Address that received the tokens |
+**value** | **str** | Amount of tokens transferred (in smallest unit) |
+**chain_id** | **int** | Chain ID of the blockchain |
+**base_asset_id** | **str** | The blockchain base asset identifier |
+**block_number** | **int** | Block number containing this transfer |
+**block_hash** | **str** | Hash of the block containing this transfer |
+**block_timestamp** | **datetime** | Timestamp when the block was mined |
+**event_name** | **str** | Name of the event (typically \"Transfer\") |
+
+## Example
+
+```python
+from fireblocks.models.onchain_transfer_event import OnchainTransferEvent
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OnchainTransferEvent from a JSON string
+onchain_transfer_event_instance = OnchainTransferEvent.from_json(json)
+# print the JSON string representation of the object
+print(OnchainTransferEvent.to_json())
+
+# convert the object into a dict
+onchain_transfer_event_dict = onchain_transfer_event_instance.to_dict()
+# create an instance of OnchainTransferEvent from a dict
+onchain_transfer_event_from_dict = OnchainTransferEvent.from_dict(onchain_transfer_event_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/OnchainTransfersPagedResponse.md b/docs/OnchainTransfersPagedResponse.md
new file mode 100644
index 00000000..45204943
--- /dev/null
+++ b/docs/OnchainTransfersPagedResponse.md
@@ -0,0 +1,32 @@
+# OnchainTransfersPagedResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[OnchainTransferEvent]**](OnchainTransferEvent.md) | Array of ERC20 transfer events |
+**next** | **str** | Cursor for next page | [optional]
+**prev** | **str** | Cursor for previous page | [optional]
+**total** | **float** | Total count of items | [optional]
+
+## Example
+
+```python
+from fireblocks.models.onchain_transfers_paged_response import OnchainTransfersPagedResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OnchainTransfersPagedResponse from a JSON string
+onchain_transfers_paged_response_instance = OnchainTransfersPagedResponse.from_json(json)
+# print the JSON string representation of the object
+print(OnchainTransfersPagedResponse.to_json())
+
+# convert the object into a dict
+onchain_transfers_paged_response_dict = onchain_transfers_paged_response_instance.to_dict()
+# create an instance of OnchainTransfersPagedResponse from a dict
+onchain_transfers_paged_response_from_dict = OnchainTransfersPagedResponse.from_dict(onchain_transfers_paged_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/OrderRequirementAllowedFileType.md b/docs/OrderRequirementAllowedFileType.md
new file mode 100644
index 00000000..7055d805
--- /dev/null
+++ b/docs/OrderRequirementAllowedFileType.md
@@ -0,0 +1,29 @@
+# OrderRequirementAllowedFileType
+
+Supported file formats for order requirement file uploads.
+
+## Enum
+
+* `PDF` (value: `'PDF'`)
+
+* `JPEG` (value: `'JPEG'`)
+
+* `PNG` (value: `'PNG'`)
+
+* `HEIC` (value: `'HEIC'`)
+
+* `HEIF` (value: `'HEIF'`)
+
+* `DOC` (value: `'DOC'`)
+
+* `DOCX` (value: `'DOCX'`)
+
+* `XLS` (value: `'XLS'`)
+
+* `XLSX` (value: `'XLSX'`)
+
+* `CSV` (value: `'CSV'`)
+
+[[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/OrderRequirementDetails.md b/docs/OrderRequirementDetails.md
new file mode 100644
index 00000000..5bcfcf1c
--- /dev/null
+++ b/docs/OrderRequirementDetails.md
@@ -0,0 +1,33 @@
+# OrderRequirementDetails
+
+Order requirement details for an order that is awaiting compliance requirements. Returned by GET /trading/orders/{orderId}/requirement.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**requirement_id** | **str** | Unique identifier of the order requirement request as issued by the provider. |
+**due_by** | **datetime** | ISO-8601 timestamp indicating when the order requirement submission is due. | [optional]
+**required_data** | **str** | A JSON Schema (Draft-7) in string format describing the shape of the `data` object expected on the corresponding POST /trading/orders/{orderId}/requirement/data request. The schema is the contract: the client builds the `data` payload to match it, and SDKs can validate before sending. The string content is expected to be valid JSON (application/json). |
+**required_files** | [**List[OrderRequirementFile]**](OrderRequirementFile.md) | Descriptors for files the provider requires as part of the order requirement response. Empty when no files are required. Each entry's `fileKey` is used to correlate uploads on the corresponding upload request. |
+
+## Example
+
+```python
+from fireblocks.models.order_requirement_details import OrderRequirementDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OrderRequirementDetails from a JSON string
+order_requirement_details_instance = OrderRequirementDetails.from_json(json)
+# print the JSON string representation of the object
+print(OrderRequirementDetails.to_json())
+
+# convert the object into a dict
+order_requirement_details_dict = order_requirement_details_instance.to_dict()
+# create an instance of OrderRequirementDetails from a dict
+order_requirement_details_from_dict = OrderRequirementDetails.from_dict(order_requirement_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/OrderRequirementFile.md b/docs/OrderRequirementFile.md
new file mode 100644
index 00000000..f4dedf7a
--- /dev/null
+++ b/docs/OrderRequirementFile.md
@@ -0,0 +1,32 @@
+# OrderRequirementFile
+
+A file the provider requires as part of the order requirement response.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**file_key** | **str** | Stable identifier for this required file. Used to correlate uploads on submission. |
+**description** | **str** | Human-readable description of what the file should contain. |
+**allowed_file_types** | [**List[OrderRequirementAllowedFileType]**](OrderRequirementAllowedFileType.md) | File formats the provider accepts for this entry. |
+
+## Example
+
+```python
+from fireblocks.models.order_requirement_file import OrderRequirementFile
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OrderRequirementFile from a JSON string
+order_requirement_file_instance = OrderRequirementFile.from_json(json)
+# print the JSON string representation of the object
+print(OrderRequirementFile.to_json())
+
+# convert the object into a dict
+order_requirement_file_dict = order_requirement_file_instance.to_dict()
+# create an instance of OrderRequirementFile from a dict
+order_requirement_file_from_dict = OrderRequirementFile.from_dict(order_requirement_file_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/OrderStatus.md b/docs/OrderStatus.md
index 47f0cddf..a509a32c 100644
--- a/docs/OrderStatus.md
+++ b/docs/OrderStatus.md
@@ -7,6 +7,8 @@
* `AWAITING_PAYMENT` (value: `'AWAITING_PAYMENT'`)
+* `AWAITING_INFORMATION` (value: `'AWAITING_INFORMATION'`)
+
* `PENDING_USER_ACTION` (value: `'PENDING_USER_ACTION'`)
* `PROCESSING` (value: `'PROCESSING'`)
diff --git a/docs/PersonalIdentification.md b/docs/PersonalIdentification.md
index 75f84c88..96aabd21 100644
--- a/docs/PersonalIdentification.md
+++ b/docs/PersonalIdentification.md
@@ -13,10 +13,12 @@ Name | Type | Description | Notes
**postal_address** | [**PostalAddress**](PostalAddress.md) | |
**email** | **str** | | [optional]
**phone** | **str** | Mobile phone number in E.164 format | [optional]
-**id_number** | **str** | The identification number corresponding to the primary identification document type specified in idType | [optional]
-**id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional]
-**additional_id_number** | **str** | The identification number corresponding to the additional identification document type specified in additionalIdType | [optional]
-**additional_id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional]
+**id_number** | **str** | Deprecated. Use identificationDocuments instead. | [optional]
+**id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | Deprecated. Use identificationDocuments instead. | [optional]
+**additional_id_number** | **str** | Deprecated. Use identificationDocuments instead. | [optional]
+**additional_id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | Deprecated. Use identificationDocuments instead. | [optional]
+**nationality** | **str** | The ISO-3166 Alpha-2 country code representing the individual's nationality. | [optional]
+**identification_documents** | [**List[PersonalIdentificationDocument]**](PersonalIdentificationDocument.md) | List of identification documents for the individual. | [optional]
## Example
diff --git a/docs/PersonalIdentificationDocument.md b/docs/PersonalIdentificationDocument.md
new file mode 100644
index 00000000..4b07694f
--- /dev/null
+++ b/docs/PersonalIdentificationDocument.md
@@ -0,0 +1,31 @@
+# PersonalIdentificationDocument
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | The identification document number. | [optional]
+**type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional]
+**expiration_date** | **date** | The expiration date of the identification document. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.personal_identification_document import PersonalIdentificationDocument
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PersonalIdentificationDocument from a JSON string
+personal_identification_document_instance = PersonalIdentificationDocument.from_json(json)
+# print the JSON string representation of the object
+print(PersonalIdentificationDocument.to_json())
+
+# convert the object into a dict
+personal_identification_document_dict = personal_identification_document_instance.to_dict()
+# create an instance of PersonalIdentificationDocument from a dict
+personal_identification_document_from_dict = PersonalIdentificationDocument.from_dict(personal_identification_document_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/PositionRelatedTransaction.md b/docs/PositionRelatedTransaction.md
new file mode 100644
index 00000000..b8c6c1b3
--- /dev/null
+++ b/docs/PositionRelatedTransaction.md
@@ -0,0 +1,35 @@
+# PositionRelatedTransaction
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**tx_id** | **str** | The transaction ID. |
+**tx_hash** | **str** | On-chain transaction hash. Absent while the transaction is pending. | [optional]
+**staking_operation** | **str** | Staking operation type. One of APPROVE, STAKE, UNSTAKE, WITHDRAW, CLAIM_REWARDS, SPLIT, CONSOLIDATE, MERGE, TRANSFER, AUTHORIZE, ADD_TO_STAKE. Absent on legacy persisted rows. | [optional]
+**timestamp** | **datetime** | ISO timestamp when the transaction was initiated (send time). |
+**status** | **str** | Transaction outcome. |
+**amount** | **str** | Portion of position amount this transaction moved (native units). Absent on legacy rows. | [optional]
+**tx_note** | **str** | User-provided note from the transfer request. Omitted when not set. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.position_related_transaction import PositionRelatedTransaction
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PositionRelatedTransaction from a JSON string
+position_related_transaction_instance = PositionRelatedTransaction.from_json(json)
+# print the JSON string representation of the object
+print(PositionRelatedTransaction.to_json())
+
+# convert the object into a dict
+position_related_transaction_dict = position_related_transaction_instance.to_dict()
+# create an instance of PositionRelatedTransaction from a dict
+position_related_transaction_from_dict = PositionRelatedTransaction.from_dict(position_related_transaction_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 fd4b27e3..9a43dcb3 100644
--- a/docs/Quote.md
+++ b/docs/Quote.md
@@ -21,7 +21,7 @@ Name | Type | Description | Notes
**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]
+**required_participants_identification_on_order** | **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/QuoteOffer.md b/docs/QuoteOffer.md
index 17c79909..f6f24b21 100644
--- a/docs/QuoteOffer.md
+++ b/docs/QuoteOffer.md
@@ -20,7 +20,7 @@ Name | Type | Description | Notes
**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]
+**required_participants_identification_on_order** | **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. |
diff --git a/docs/RoleDetails2.md b/docs/RoleDetails2.md
new file mode 100644
index 00000000..53aaf98b
--- /dev/null
+++ b/docs/RoleDetails2.md
@@ -0,0 +1,31 @@
+# RoleDetails2
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role_hash** | **str** | The role hash identifier |
+**description** | **str** | Human-readable description of the role |
+**accounts** | [**List[RoleGrantee]**](RoleGrantee.md) | List of accounts that have been granted this role |
+
+## Example
+
+```python
+from fireblocks.models.role_details2 import RoleDetails2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RoleDetails2 from a JSON string
+role_details2_instance = RoleDetails2.from_json(json)
+# print the JSON string representation of the object
+print(RoleDetails2.to_json())
+
+# convert the object into a dict
+role_details2_dict = role_details2_instance.to_dict()
+# create an instance of RoleDetails2 from a dict
+role_details2_from_dict = RoleDetails2.from_dict(role_details2_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/ScreeningTRLinkMissingTrmDecision.md b/docs/ScreeningTRLinkMissingTrmDecision.md
index b6ff764d..185c0fe0 100644
--- a/docs/ScreeningTRLinkMissingTrmDecision.md
+++ b/docs/ScreeningTRLinkMissingTrmDecision.md
@@ -8,10 +8,10 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional]
**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
-**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**source_address** | **str** | Source address | [optional]
-**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**dest_address** | **str** | Destination address | [optional]
**source_id** | **str** | Source ID | [optional]
diff --git a/docs/ScreeningTRLinkMissingTrmRule.md b/docs/ScreeningTRLinkMissingTrmRule.md
index 6c70742f..93ac8f3c 100644
--- a/docs/ScreeningTRLinkMissingTrmRule.md
+++ b/docs/ScreeningTRLinkMissingTrmRule.md
@@ -8,10 +8,10 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional]
**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
-**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**source_address** | **str** | Source address | [optional]
-**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**dest_address** | **str** | Destination address | [optional]
**source_id** | **str** | Source ID | [optional]
diff --git a/docs/ScreeningTRLinkPostScreeningRule.md b/docs/ScreeningTRLinkPostScreeningRule.md
index cab6c676..eb463dba 100644
--- a/docs/ScreeningTRLinkPostScreeningRule.md
+++ b/docs/ScreeningTRLinkPostScreeningRule.md
@@ -8,10 +8,10 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional]
**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
-**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**source_address** | **str** | Source address | [optional]
-**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**dest_address** | **str** | Destination address | [optional]
**source_id** | **str** | Source ID | [optional]
diff --git a/docs/ScreeningTRLinkPrescreeningRule.md b/docs/ScreeningTRLinkPrescreeningRule.md
index cfa43ff4..4b9a92d7 100644
--- a/docs/ScreeningTRLinkPrescreeningRule.md
+++ b/docs/ScreeningTRLinkPrescreeningRule.md
@@ -8,10 +8,10 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional]
**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
-**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**source_address** | **str** | Source address | [optional]
-**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**dest_address** | **str** | Destination address | [optional]
**source_id** | **str** | Source ID | [optional]
diff --git a/docs/ScreeningTRLinkRuleBase.md b/docs/ScreeningTRLinkRuleBase.md
index ed656382..40cb9a1d 100644
--- a/docs/ScreeningTRLinkRuleBase.md
+++ b/docs/ScreeningTRLinkRuleBase.md
@@ -8,10 +8,10 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional]
**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
-**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**source_address** | **str** | Source address | [optional]
-**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**dest_address** | **str** | Destination address | [optional]
**source_id** | **str** | Source ID | [optional]
diff --git a/docs/ScreeningTravelRulePrescreeningRule.md b/docs/ScreeningTravelRulePrescreeningRule.md
index 3ebf1da8..71f76605 100644
--- a/docs/ScreeningTravelRulePrescreeningRule.md
+++ b/docs/ScreeningTravelRulePrescreeningRule.md
@@ -7,11 +7,11 @@ Matched prescreening rule details. Prescreening rules are evaluated before the m
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**bypass_reason** | **str** | Reason for bypass if prescreening rule triggered a bypass | [optional]
-**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
-**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
-**transfer_peer_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**transfer_peer_type** | [**TransferPeerTypeEnum2**](TransferPeerTypeEnum2.md) | | [optional]
**transfer_peer_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
**dest_address** | **str** | Destination address | [optional]
**source_id** | **str** | Source ID | [optional]
diff --git a/docs/StakingApi.md b/docs/StakingApi.md
index e685bc3c..c74cf0e3 100644
--- a/docs/StakingApi.md
+++ b/docs/StakingApi.md
@@ -11,6 +11,7 @@ Method | HTTP request | Description
[**get_chain_info**](StakingApi.md#get_chain_info) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters
[**get_chains**](StakingApi.md#get_chains) | **GET** /staking/chains | List supported staking chains
[**get_delegation_by_id**](StakingApi.md#get_delegation_by_id) | **GET** /staking/positions/{id} | Get position details
+[**get_position_related_transactions**](StakingApi.md#get_position_related_transactions) | **GET** /staking/positions/{id}/related_transactions | List related transactions for a position
[**get_positions**](StakingApi.md#get_positions) | **GET** /staking/positions_paginated | List staking positions (Paginated)
[**get_providers**](StakingApi.md#get_providers) | **GET** /staking/providers | List staking providers
[**get_summary**](StakingApi.md#get_summary) | **GET** /staking/positions/summary | Get positions summary
@@ -583,6 +584,91 @@ 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_position_related_transactions**
+> StakingPositionRelatedTransactionsPaginatedResponse get_position_related_transactions(id, page_size, page_cursor=page_cursor, order=order)
+
+List related transactions for a position
+
+Returns enriched transaction history for a staking position with cursor-based pagination. Includes in-flight transactions with status pending. The in-flight transaction is always returned first; completed and failed history is ordered by the order parameter.
+
+### Example
+
+
+```python
+from fireblocks.models.staking_position_related_transactions_paginated_response import StakingPositionRelatedTransactionsPaginatedResponse
+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:
+ id = 'id_example' # str | Unique identifier of the staking position.
+ page_size = 10 # int | Number of results per page (minimum: 1, maximum: 100).
+ page_cursor = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' # str | Cursor for the next page of results. Use the value from the 'next' field in the previous response. (optional)
+ order = DESC # str | ASC / DESC ordering for completed/failed history (default DESC). The in-flight transaction is always returned first. (optional) (default to DESC)
+
+ try:
+ # List related transactions for a position
+ api_response = fireblocks.staking.get_position_related_transactions(id, page_size, page_cursor=page_cursor, order=order).result()
+ print("The response of StakingApi->get_position_related_transactions:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling StakingApi->get_position_related_transactions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier of the staking position. |
+ **page_size** | **int**| Number of results per page (minimum: 1, maximum: 100). |
+ **page_cursor** | **str**| Cursor for the next page of results. Use the value from the 'next' field in the previous response. | [optional]
+ **order** | **str**| ASC / DESC ordering for completed/failed history (default DESC). The in-flight transaction is always returned first. | [optional] [default to DESC]
+
+### Return type
+
+[**StakingPositionRelatedTransactionsPaginatedResponse**](StakingPositionRelatedTransactionsPaginatedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Paginated list of related transactions for the position returned successfully. | * X-Request-ID -
|
+**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
|
+**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
|
+**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
|
+**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+**500** | 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_positions**
> StakingPositionsPaginatedResponse get_positions(page_size, chain_descriptor=chain_descriptor, vault_account_id=vault_account_id, page_cursor=page_cursor, order=order)
diff --git a/docs/StakingPositionRelatedTransactionsPaginatedResponse.md b/docs/StakingPositionRelatedTransactionsPaginatedResponse.md
new file mode 100644
index 00000000..96bf17aa
--- /dev/null
+++ b/docs/StakingPositionRelatedTransactionsPaginatedResponse.md
@@ -0,0 +1,30 @@
+# StakingPositionRelatedTransactionsPaginatedResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[PositionRelatedTransaction]**](PositionRelatedTransaction.md) | The related transactions for the current page. |
+**next** | **str** | Cursor for the next page. Use this value in the pageCursor parameter to fetch the next page. Null if no more pages. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.staking_position_related_transactions_paginated_response import StakingPositionRelatedTransactionsPaginatedResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of StakingPositionRelatedTransactionsPaginatedResponse from a JSON string
+staking_position_related_transactions_paginated_response_instance = StakingPositionRelatedTransactionsPaginatedResponse.from_json(json)
+# print the JSON string representation of the object
+print(StakingPositionRelatedTransactionsPaginatedResponse.to_json())
+
+# convert the object into a dict
+staking_position_related_transactions_paginated_response_dict = staking_position_related_transactions_paginated_response_instance.to_dict()
+# create an instance of StakingPositionRelatedTransactionsPaginatedResponse from a dict
+staking_position_related_transactions_paginated_response_from_dict = StakingPositionRelatedTransactionsPaginatedResponse.from_dict(staking_position_related_transactions_paginated_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/SubmitOrderRequirementRequest.md b/docs/SubmitOrderRequirementRequest.md
new file mode 100644
index 00000000..a02d21cc
--- /dev/null
+++ b/docs/SubmitOrderRequirementRequest.md
@@ -0,0 +1,30 @@
+# SubmitOrderRequirementRequest
+
+Body of POST /trading/orders/{orderId}/requirement/data. Carries the textual response (`data`). Any required files are uploaded separately via POST /trading/orders/{orderId}/requirement/file.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | **Dict[str, object]** | Free-form object that MUST conform to the `requiredData` JSON Schema returned by the GET endpoint. Carries text/select fields. |
+
+## Example
+
+```python
+from fireblocks.models.submit_order_requirement_request import SubmitOrderRequirementRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SubmitOrderRequirementRequest from a JSON string
+submit_order_requirement_request_instance = SubmitOrderRequirementRequest.from_json(json)
+# print the JSON string representation of the object
+print(SubmitOrderRequirementRequest.to_json())
+
+# convert the object into a dict
+submit_order_requirement_request_dict = submit_order_requirement_request_instance.to_dict()
+# create an instance of SubmitOrderRequirementRequest from a dict
+submit_order_requirement_request_from_dict = SubmitOrderRequirementRequest.from_dict(submit_order_requirement_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/TokenizationApi.md b/docs/TokenizationApi.md
index 10cdfc8d..ad2f28de 100644
--- a/docs/TokenizationApi.md
+++ b/docs/TokenizationApi.md
@@ -17,6 +17,16 @@ Method | HTTP request | Description
[**get_linked_token**](TokenizationApi.md#get_linked_token) | **GET** /tokenization/tokens/{id} | Return a linked token
[**get_linked_tokens**](TokenizationApi.md#get_linked_tokens) | **GET** /tokenization/tokens | List all linked tokens
[**get_linked_tokens_count**](TokenizationApi.md#get_linked_tokens_count) | **GET** /tokenization/tokens/count | Get the total count of linked tokens
+[**get_token_access_registry_addresses**](TokenizationApi.md#get_token_access_registry_addresses) | **GET** /tokenization/access_registries/{id}/addresses | Get current state of addresses in an access registry
+[**get_token_access_registry_summary**](TokenizationApi.md#get_token_access_registry_summary) | **GET** /tokenization/access_registries/{id}/summary | Get summary of an access registry
+[**get_token_balance_for_account**](TokenizationApi.md#get_token_balance_for_account) | **GET** /tokenization/tokens/{id}/balances/{accountAddress} | Get the latest balance for a specific account
+[**get_token_balance_history**](TokenizationApi.md#get_token_balance_history) | **GET** /tokenization/tokens/{id}/balances/{accountAddress}/history | Get balance history for a specific account
+[**get_token_balances**](TokenizationApi.md#get_token_balances) | **GET** /tokenization/tokens/{id}/balances | Get latest balances for all holders of a token
+[**get_token_contract_summary**](TokenizationApi.md#get_token_contract_summary) | **GET** /tokenization/tokens/{id}/summary | Get onchain summary for a token
+[**get_token_rbac**](TokenizationApi.md#get_token_rbac) | **GET** /tokenization/tokens/{id}/rbac | Get active RBAC roles for a token
+[**get_token_total_supply**](TokenizationApi.md#get_token_total_supply) | **GET** /tokenization/tokens/{id}/total_supply | Get historical total supply for a token
+[**get_token_transactions**](TokenizationApi.md#get_token_transactions) | **GET** /tokenization/tokens/{id}/transactions | Get onchain transactions for a token
+[**get_token_transfers**](TokenizationApi.md#get_token_transfers) | **GET** /tokenization/tokens/{id}/transfers | Get onchain transfers for a token
[**issue_new_token**](TokenizationApi.md#issue_new_token) | **POST** /tokenization/tokens | Issue a new token
[**issue_token_multi_chain**](TokenizationApi.md#issue_token_multi_chain) | **POST** /tokenization/multichain/tokens | Issue a token on one or more blockchains
[**link**](TokenizationApi.md#link) | **POST** /tokenization/tokens/link | Link a contract
@@ -1032,6 +1042,830 @@ 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_token_access_registry_addresses**
+> AccessRegistryCurrentStateResponse get_token_access_registry_addresses(id, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+
+Get current state of addresses in an access registry
+
+Returns the currently active addresses in the access registry (added but not removed).
+
+### Example
+
+
+```python
+from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional)
+ page_size = 10 # int | Number of items per page (max 100), requesting more than 100 will return 100 items (optional)
+ sort_by = dateAdded # str | Sorting field (enum). (optional) (default to dateAdded)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+
+ try:
+ # Get current state of addresses in an access registry
+ api_response = fireblocks.tokenization.get_token_access_registry_addresses(id, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result()
+ print("The response of TokenizationApi->get_token_access_registry_addresses:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_access_registry_addresses: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **page_cursor** | **str**| Page cursor to get the next page | [optional]
+ **page_size** | **int**| Number of items per page (max 100), requesting more than 100 will return 100 items | [optional]
+ **sort_by** | **str**| Sorting field (enum). | [optional] [default to dateAdded]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+
+### Return type
+
+[**AccessRegistryCurrentStateResponse**](AccessRegistryCurrentStateResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Access registry addresses retrieved successfully | - |
+**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_token_access_registry_summary**
+> AccessRegistrySummaryResponse get_token_access_registry_summary(id)
+
+Get summary of an access registry
+
+Returns a summary of the current state of the access registry.
+
+### Example
+
+
+```python
+from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+
+ try:
+ # Get summary of an access registry
+ api_response = fireblocks.tokenization.get_token_access_registry_summary(id).result()
+ print("The response of TokenizationApi->get_token_access_registry_summary:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_access_registry_summary: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+
+### Return type
+
+[**AccessRegistrySummaryResponse**](AccessRegistrySummaryResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Access registry summary retrieved successfully | - |
+**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_token_balance_for_account**
+> AddressBalanceItemDto get_token_balance_for_account(id, account_address)
+
+Get the latest balance for a specific account
+
+Returns the latest token balance for the specified account address.
+
+### Example
+
+
+```python
+from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ account_address = '0x1234567890abcdef1234567890abcdef12345678' # str | The account address to get balance history for
+
+ try:
+ # Get the latest balance for a specific account
+ api_response = fireblocks.tokenization.get_token_balance_for_account(id, account_address).result()
+ print("The response of TokenizationApi->get_token_balance_for_account:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_balance_for_account: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **account_address** | **str**| The account address to get balance history for |
+
+### Return type
+
+[**AddressBalanceItemDto**](AddressBalanceItemDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successfully retrieved the balance for the account | - |
+**404** | Token not found | - |
+**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_token_balance_history**
+> BalanceHistoryPagedResponse get_token_balance_history(id, account_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+
+Get balance history for a specific account
+
+Returns paginated balance history for the specified account address with optional time-range filtering.
+
+### Example
+
+
+```python
+from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ account_address = '0x1234567890abcdef1234567890abcdef12345678' # str | The account address to get balance history for
+ start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional)
+ end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional)
+ interval = DAY # str | Time interval for grouping data (optional) (default to DAY)
+ page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional)
+ page_size = 10 # int | Number of items per page (max 100), requesting more than 100 will return 100 items (optional)
+ sort_by = blockTimestamp # str | Sorting field (enum). Sorting only supported by 'blockTimestamp' (optional) (default to blockTimestamp)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+
+ try:
+ # Get balance history for a specific account
+ api_response = fireblocks.tokenization.get_token_balance_history(id, account_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result()
+ print("The response of TokenizationApi->get_token_balance_history:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_balance_history: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **account_address** | **str**| The account address to get balance history for |
+ **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional]
+ **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional]
+ **interval** | **str**| Time interval for grouping data | [optional] [default to DAY]
+ **page_cursor** | **str**| Page cursor to get the next page | [optional]
+ **page_size** | **int**| Number of items per page (max 100), requesting more than 100 will return 100 items | [optional]
+ **sort_by** | **str**| Sorting field (enum). Sorting only supported by 'blockTimestamp' | [optional] [default to blockTimestamp]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+
+### Return type
+
+[**BalanceHistoryPagedResponse**](BalanceHistoryPagedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successfully retrieved the balance history | - |
+**404** | Token not found | - |
+**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_token_balances**
+> AddressBalancePagedResponse get_token_balances(id, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+
+Get latest balances for all holders of a token
+
+Returns the latest balance for each unique address holding this token.
+
+### Example
+
+
+```python
+from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional)
+ page_size = 10 # int | Number of items per page (max 100), requesting more than 100 will return 100 items (optional)
+ sort_by = blockTimestamp # str | Sorting field for balances (optional) (default to blockTimestamp)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+
+ try:
+ # Get latest balances for all holders of a token
+ api_response = fireblocks.tokenization.get_token_balances(id, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result()
+ print("The response of TokenizationApi->get_token_balances:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_balances: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **page_cursor** | **str**| Page cursor to get the next page | [optional]
+ **page_size** | **int**| Number of items per page (max 100), requesting more than 100 will return 100 items | [optional]
+ **sort_by** | **str**| Sorting field for balances | [optional] [default to blockTimestamp]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+
+### Return type
+
+[**AddressBalancePagedResponse**](AddressBalancePagedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successfully retrieved the latest balances for the token | - |
+**404** | Token not found | - |
+**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_token_contract_summary**
+> TokenContractSummaryResponse get_token_contract_summary(id)
+
+Get onchain summary for a token
+
+Returns the total number of unique holders and the total supply for the token contract.
+
+### Example
+
+
+```python
+from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+
+ try:
+ # Get onchain summary for a token
+ api_response = fireblocks.tokenization.get_token_contract_summary(id).result()
+ print("The response of TokenizationApi->get_token_contract_summary:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_contract_summary: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+
+### Return type
+
+[**TokenContractSummaryResponse**](TokenContractSummaryResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successfully retrieved the summary for the token contract | - |
+**404** | Token not found | - |
+**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_token_rbac**
+> ActiveRolesResponse get_token_rbac(id)
+
+Get active RBAC roles for a token
+
+Returns a list of currently active roles for the token contract.
+
+### Example
+
+
+```python
+from fireblocks.models.active_roles_response import ActiveRolesResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+
+ try:
+ # Get active RBAC roles for a token
+ api_response = fireblocks.tokenization.get_token_rbac(id).result()
+ print("The response of TokenizationApi->get_token_rbac:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_rbac: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+
+### Return type
+
+[**ActiveRolesResponse**](ActiveRolesResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successfully retrieved the list of active roles | - |
+**404** | Token not found | - |
+**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_token_total_supply**
+> TotalSupplyPagedResponse get_token_total_supply(id, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+
+Get historical total supply for a token
+
+Returns paginated total supply history for the token contract with optional time-range filtering and binning.
+
+### Example
+
+
+```python
+from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional)
+ end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional)
+ interval = DAY # str | Time interval for grouping data (optional) (default to DAY)
+ page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional)
+ page_size = 10 # int | Number of items per page (max 100), requesting more than 100 will return 100 items (optional)
+ sort_by = blockTimestamp # str | Sorting field (enum). Sorting only supported by 'blockTimestamp' (optional) (default to blockTimestamp)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+
+ try:
+ # Get historical total supply for a token
+ api_response = fireblocks.tokenization.get_token_total_supply(id, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result()
+ print("The response of TokenizationApi->get_token_total_supply:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_total_supply: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional]
+ **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional]
+ **interval** | **str**| Time interval for grouping data | [optional] [default to DAY]
+ **page_cursor** | **str**| Page cursor to get the next page | [optional]
+ **page_size** | **int**| Number of items per page (max 100), requesting more than 100 will return 100 items | [optional]
+ **sort_by** | **str**| Sorting field (enum). Sorting only supported by 'blockTimestamp' | [optional] [default to blockTimestamp]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+
+### Return type
+
+[**TotalSupplyPagedResponse**](TotalSupplyPagedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successfully retrieved the token total supply history | - |
+**404** | Token not found | - |
+**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_token_transactions**
+> OnchainTransactionsPagedResponse get_token_transactions(id, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order)
+
+Get onchain transactions for a token
+
+Returns a paginated list of onchain transactions for the token contract, optionally filtered by date range.
+
+### Example
+
+
+```python
+from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional)
+ end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional)
+ page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional)
+ page_size = 10 # int | Number of items per page (max 100), requesting more than 100 will return 100 items (optional)
+ sort_by = blockTimestamp # str | Sorting field (enum). (optional) (default to blockTimestamp)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+
+ try:
+ # Get onchain transactions for a token
+ api_response = fireblocks.tokenization.get_token_transactions(id, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result()
+ print("The response of TokenizationApi->get_token_transactions:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_transactions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional]
+ **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional]
+ **page_cursor** | **str**| Page cursor to get the next page | [optional]
+ **page_size** | **int**| Number of items per page (max 100), requesting more than 100 will return 100 items | [optional]
+ **sort_by** | **str**| Sorting field (enum). | [optional] [default to blockTimestamp]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+
+### Return type
+
+[**OnchainTransactionsPagedResponse**](OnchainTransactionsPagedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Onchain transactions fetched successfully | - |
+**404** | Token not found | - |
+**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_token_transfers**
+> OnchainTransfersPagedResponse get_token_transfers(id, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, sender=sender, receiver=receiver)
+
+Get onchain transfers for a token
+
+Returns a paginated list of ERC20 transfer events for the token contract, optionally filtered by date range.
+
+### Example
+
+
+```python
+from fireblocks.models.onchain_transfers_paged_response import OnchainTransfersPagedResponse
+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:
+ id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id
+ start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional)
+ end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional)
+ page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional)
+ page_size = 10 # int | Number of items per page (max 100), requesting more than 100 will return 100 items (optional)
+ sort_by = blockTimeStamp # str | Sorting field for transfers (optional) (default to blockTimeStamp)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+ sender = '0xabcdef1234567890abcdef1234567890abcdef12' # str | Filter transfers by sender address (optional)
+ receiver = '0x1234567890abcdef1234567890abcdef12345678' # str | Filter transfers by receiver address (optional)
+
+ try:
+ # Get onchain transfers for a token
+ api_response = fireblocks.tokenization.get_token_transfers(id, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, sender=sender, receiver=receiver).result()
+ print("The response of TokenizationApi->get_token_transfers:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TokenizationApi->get_token_transfers: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| The token link id |
+ **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional]
+ **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional]
+ **page_cursor** | **str**| Page cursor to get the next page | [optional]
+ **page_size** | **int**| Number of items per page (max 100), requesting more than 100 will return 100 items | [optional]
+ **sort_by** | **str**| Sorting field for transfers | [optional] [default to blockTimeStamp]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+ **sender** | **str**| Filter transfers by sender address | [optional]
+ **receiver** | **str**| Filter transfers by receiver address | [optional]
+
+### Return type
+
+[**OnchainTransfersPagedResponse**](OnchainTransfersPagedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Onchain transfers fetched successfully | - |
+**404** | Token not found | - |
+**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)
+
# **issue_new_token**
> TokenLinkDto issue_new_token(create_token_request_dto, idempotency_key=idempotency_key)
diff --git a/docs/TotalSupplyPagedResponse2.md b/docs/TotalSupplyPagedResponse2.md
new file mode 100644
index 00000000..fae43e9f
--- /dev/null
+++ b/docs/TotalSupplyPagedResponse2.md
@@ -0,0 +1,32 @@
+# TotalSupplyPagedResponse2
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[TotalSupplyItemDto]**](TotalSupplyItemDto.md) | Array of total supply data points |
+**next** | **str** | Cursor for next page | [optional]
+**prev** | **str** | Cursor for previous page | [optional]
+**total** | **float** | Total count of items | [optional]
+
+## Example
+
+```python
+from fireblocks.models.total_supply_paged_response2 import TotalSupplyPagedResponse2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TotalSupplyPagedResponse2 from a JSON string
+total_supply_paged_response2_instance = TotalSupplyPagedResponse2.from_json(json)
+# print the JSON string representation of the object
+print(TotalSupplyPagedResponse2.to_json())
+
+# convert the object into a dict
+total_supply_paged_response2_dict = total_supply_paged_response2_instance.to_dict()
+# create an instance of TotalSupplyPagedResponse2 from a dict
+total_supply_paged_response2_from_dict = TotalSupplyPagedResponse2.from_dict(total_supply_paged_response2_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/TradingBetaApi.md b/docs/TradingBetaApi.md
index 1c7c3598..2a6f08cb 100644
--- a/docs/TradingBetaApi.md
+++ b/docs/TradingBetaApi.md
@@ -9,9 +9,12 @@ Method | HTTP request | Description
[**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_order_requirements**](TradingBetaApi.md#get_order_requirements) | **GET** /trading/orders/{orderId}/requirement | Get order requirement details for an order
[**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
[**get_trading_providers**](TradingBetaApi.md#get_trading_providers) | **GET** /trading/providers | Get providers
+[**submit_order_requirements**](TradingBetaApi.md#submit_order_requirements) | **POST** /trading/orders/{orderId}/requirement/data | Submit a response to an order requirement
+[**upload_order_requirement_file**](TradingBetaApi.md#upload_order_requirement_file) | **POST** /trading/orders/{orderId}/requirement/file | Upload a file for an order requirement
# **create_order**
@@ -467,6 +470,99 @@ 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_order_requirements**
+> OrderRequirementDetails get_order_requirements(order_id)
+
+Get order requirement details for an order
+
+Fetch order requirement details for an order that is in `AWAITING_INFORMATION` status.
+
+The response includes `requirementId` and `dueBy` metadata, a
+`requiredData` JSON Schema (Draft-7) describing the shape of the `data` object expected on
+`POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the
+provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`).
+
+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.order_requirement_details import OrderRequirementDetails
+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:
+ order_id = 'order_id_example' # str | The ID of the order for which the order requirement is issued.
+
+ try:
+ # Get order requirement details for an order
+ api_response = fireblocks.trading_beta.get_order_requirements(order_id).result()
+ print("The response of TradingBetaApi->get_order_requirements:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TradingBetaApi->get_order_requirements: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **order_id** | **str**| The ID of the order for which the order requirement is issued. |
+
+### Return type
+
+[**OrderRequirementDetails**](OrderRequirementDetails.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Order requirement details | * 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 -
|
+**404** | Not found: the order does not exist. | * X-Request-ID -
|
+**409** | Conflict: the order exists but does not have an active order requirement (e.g., the order is not in `AWAITING_INFORMATION`). | * 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_orders**
> GetOrdersResponse get_orders(page_size, page_cursor=page_cursor, order=order, account_id=account_id, provider_id=provider_id, statuses=statuses, start_time=start_time, end_time=end_time, asset_conversion_type=asset_conversion_type)
@@ -743,3 +839,194 @@ 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)
+# **submit_order_requirements**
+> submit_order_requirements(order_id, submit_order_requirement_request, idempotency_key=idempotency_key)
+
+Submit a response to an order requirement
+
+Submit the user's textual response to an order requirement on an order that is in `AWAITING_INFORMATION` status.
+
+The request body carries `data` — a free-form object conforming to the `requiredData` JSON Schema
+returned by the GET endpoint. Any required files are uploaded separately via
+`POST /trading/orders/{orderId}/requirement/file`.
+
+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.submit_order_requirement_request import SubmitOrderRequirementRequest
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+
+# 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:
+ order_id = 'order_id_example' # str | The ID of the order to submit the order requirement response for.
+ submit_order_requirement_request = fireblocks.SubmitOrderRequirementRequest() # SubmitOrderRequirementRequest |
+ 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:
+ # Submit a response to an order requirement
+ fireblocks.trading_beta.submit_order_requirements(order_id, submit_order_requirement_request, idempotency_key=idempotency_key).result()
+ except Exception as e:
+ print("Exception when calling TradingBetaApi->submit_order_requirements: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **order_id** | **str**| The ID of the order to submit the order requirement response for. |
+ **submit_order_requirement_request** | [**SubmitOrderRequirementRequest**](SubmitOrderRequirementRequest.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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**202** | Order requirement submission accepted for processing. | * 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 -
|
+**404** | Not found: the order does not exist. | * X-Request-ID -
|
+**409** | Conflict: the order exists but does not have an active order requirement (e.g., the order is not in `AWAITING_INFORMATION`). | * 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)
+
+# **upload_order_requirement_file**
+> upload_order_requirement_file(order_id, file_key, file, idempotency_key=idempotency_key)
+
+Upload a file for an order requirement
+
+Upload a single file (multipart/form-data) in response to an order requirement on an order that is in
+`AWAITING_INFORMATION` status. Call this endpoint once per required file.
+
+Send `fileKey` (matching a `fileKey` from `requiredFiles` on the GET response) and the binary `file`. Its type
+must be one of the supported file formats. Fireblocks encrypts each file and uploads it individually to the
+underlying provider. The textual response is submitted separately via
+`POST /trading/orders/{orderId}/requirement/data`.
+
+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.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+
+# 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:
+ order_id = 'order_id_example' # str | The ID of the order to upload the order requirement file for.
+ file_key = 'file_key_example' # str | Identifier of the required file this upload satisfies. Must match a `fileKey` from `requiredFiles` on the GET response.
+ file = None # bytearray | The binary file content. The file's type must be one of the supported OrderRequirementAllowedFileType values; the file name and type are derived from the uploaded part.
+ 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:
+ # Upload a file for an order requirement
+ fireblocks.trading_beta.upload_order_requirement_file(order_id, file_key, file, idempotency_key=idempotency_key).result()
+ except Exception as e:
+ print("Exception when calling TradingBetaApi->upload_order_requirement_file: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **order_id** | **str**| The ID of the order to upload the order requirement file for. |
+ **file_key** | **str**| Identifier of the required file this upload satisfies. Must match a `fileKey` from `requiredFiles` on the GET response. |
+ **file** | **bytearray**| The binary file content. The file's type must be one of the supported OrderRequirementAllowedFileType values; the file name and type are derived from the uploaded part. |
+ **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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**202** | File accepted for processing. | * X-Request-ID -
|
+**400** | Bad request: unsupported file type, missing fileKey, malformed request, 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 -
|
+**404** | Not found: the order does not exist. | * X-Request-ID -
|
+**409** | Conflict: the order exists but does not have an active order requirement (e.g., the order is not in `AWAITING_INFORMATION`). | * 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)
+
diff --git a/docs/TransactionConfigurations.md b/docs/TransactionConfigurations.md
new file mode 100644
index 00000000..296fabe2
--- /dev/null
+++ b/docs/TransactionConfigurations.md
@@ -0,0 +1,29 @@
+# TransactionConfigurations
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**expires_after_seconds** | **float** | The number of seconds the transaction is valid for before it expires. After the specified duration, the transaction will expire if it has not been broadcasted. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.transaction_configurations import TransactionConfigurations
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TransactionConfigurations from a JSON string
+transaction_configurations_instance = TransactionConfigurations.from_json(json)
+# print the JSON string representation of the object
+print(TransactionConfigurations.to_json())
+
+# convert the object into a dict
+transaction_configurations_dict = transaction_configurations_instance.to_dict()
+# create an instance of TransactionConfigurations from a dict
+transaction_configurations_from_dict = TransactionConfigurations.from_dict(transaction_configurations_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/TransactionRequest.md b/docs/TransactionRequest.md
index 84143095..c03a5231 100644
--- a/docs/TransactionRequest.md
+++ b/docs/TransactionRequest.md
@@ -34,7 +34,7 @@ Name | Type | Description | Notes
**network_staking** | [**TransactionRequestNetworkStaking**](TransactionRequestNetworkStaking.md) | | [optional]
**cpu_staking** | [**TransactionRequestNetworkStaking**](TransactionRequestNetworkStaking.md) | | [optional]
**use_gasless** | **bool** | - Override the default gasless configuration by sending true\\false | [optional]
-**expires_after_seconds** | **float** | The number of seconds the transaction is valid for before it expires. After the specified duration, the transaction will expire if it has not been broadcasted. | [optional]
+**configurations** | [**TransactionConfigurations**](TransactionConfigurations.md) | | [optional]
## Example
diff --git a/docs/TransferPeerPathType.md b/docs/TransferPeerPathType.md
index 7daf18a6..11ec3ff2 100644
--- a/docs/TransferPeerPathType.md
+++ b/docs/TransferPeerPathType.md
@@ -35,6 +35,8 @@
* `OEC_PARTNER` (value: `'OEC_PARTNER'`)
+* `WALLET_POOL` (value: `'WALLET_POOL'`)
+
[[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/TransferPeerTypeEnum.md b/docs/TransferPeerTypeEnum.md
index a5c2c776..1fd34b7b 100644
--- a/docs/TransferPeerTypeEnum.md
+++ b/docs/TransferPeerTypeEnum.md
@@ -32,6 +32,8 @@ Transfer peer type (source or destination)
* `MULTI_DESTINATION` (value: `'MULTI_DESTINATION'`)
+* `WALLET_POOL` (value: `'WALLET_POOL'`)
+
[[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/TransferPeerTypeEnum2.md b/docs/TransferPeerTypeEnum2.md
new file mode 100644
index 00000000..db6bd953
--- /dev/null
+++ b/docs/TransferPeerTypeEnum2.md
@@ -0,0 +1,37 @@
+# TransferPeerTypeEnum2
+
+Transfer peer type (source or destination)
+
+## Enum
+
+* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`)
+
+* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`)
+
+* `INTERNAL_WALLET` (value: `'INTERNAL_WALLET'`)
+
+* `EXTERNAL_WALLET` (value: `'EXTERNAL_WALLET'`)
+
+* `CONTRACT` (value: `'CONTRACT'`)
+
+* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`)
+
+* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`)
+
+* `COMPOUND` (value: `'COMPOUND'`)
+
+* `GAS_STATION` (value: `'GAS_STATION'`)
+
+* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`)
+
+* `UNKNOWN` (value: `'UNKNOWN'`)
+
+* `END_USER_WALLET` (value: `'END_USER_WALLET'`)
+
+* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`)
+
+* `MULTI_DESTINATION` (value: `'MULTI_DESTINATION'`)
+
+[[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/UpdateWebhookRequest.md b/docs/UpdateWebhookRequest.md
index dbf9587a..0c5887fc 100644
--- a/docs/UpdateWebhookRequest.md
+++ b/docs/UpdateWebhookRequest.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**description** | **str** | description of the webhook of what it is used for.should not contain special characters. | [optional]
**events** | [**List[WebhookEvent]**](WebhookEvent.md) | The events that the webhook will be subscribed to | [optional]
**enabled** | **bool** | The status of the webhook | [optional]
+**mtls** | [**WebhookMtls**](WebhookMtls.md) | | [optional]
## Example
diff --git a/docs/Webhook.md b/docs/Webhook.md
index f4311fc9..494628b3 100644
--- a/docs/Webhook.md
+++ b/docs/Webhook.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**status** | **str** | The status of the webhook |
**created_at** | **int** | The date and time the webhook was created in milliseconds |
**updated_at** | **int** | The date and time the webhook was last updated in milliseconds |
+**mtls** | [**WebhookMtls**](WebhookMtls.md) | | [optional]
## Example
diff --git a/docs/WebhookMtls.md b/docs/WebhookMtls.md
new file mode 100644
index 00000000..f5024a04
--- /dev/null
+++ b/docs/WebhookMtls.md
@@ -0,0 +1,30 @@
+# WebhookMtls
+
+mTLS configuration for the webhook. On responses, present only when a signed client certificate is set. On requests, provide a signed client certificate to enable mTLS, or null to remove it.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**client_signed_cert** | **str** | Signed client certificate PEM used for mTLS when delivering notifications. |
+
+## Example
+
+```python
+from fireblocks.models.webhook_mtls import WebhookMtls
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of WebhookMtls from a JSON string
+webhook_mtls_instance = WebhookMtls.from_json(json)
+# print the JSON string representation of the object
+print(WebhookMtls.to_json())
+
+# convert the object into a dict
+webhook_mtls_dict = webhook_mtls_instance.to_dict()
+# create an instance of WebhookMtls from a dict
+webhook_mtls_from_dict = WebhookMtls.from_dict(webhook_mtls_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/WebhookMtlsCsrResponse.md b/docs/WebhookMtlsCsrResponse.md
new file mode 100644
index 00000000..9ed135b4
--- /dev/null
+++ b/docs/WebhookMtlsCsrResponse.md
@@ -0,0 +1,30 @@
+# WebhookMtlsCsrResponse
+
+mTLS Certificate Signing Request response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**csr** | **str** | The Fireblocks PEM-encoded Certificate Signing Request (CSR). |
+
+## Example
+
+```python
+from fireblocks.models.webhook_mtls_csr_response import WebhookMtlsCsrResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of WebhookMtlsCsrResponse from a JSON string
+webhook_mtls_csr_response_instance = WebhookMtlsCsrResponse.from_json(json)
+# print the JSON string representation of the object
+print(WebhookMtlsCsrResponse.to_json())
+
+# convert the object into a dict
+webhook_mtls_csr_response_dict = webhook_mtls_csr_response_instance.to_dict()
+# create an instance of WebhookMtlsCsrResponse from a dict
+webhook_mtls_csr_response_from_dict = WebhookMtlsCsrResponse.from_dict(webhook_mtls_csr_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/WebhooksV2Api.md b/docs/WebhooksV2Api.md
index 446fa0ba..45e1885f 100644
--- a/docs/WebhooksV2Api.md
+++ b/docs/WebhooksV2Api.md
@@ -7,6 +7,7 @@ Method | HTTP request | Description
[**create_webhook**](WebhooksV2Api.md#create_webhook) | **POST** /webhooks | Create a new webhook
[**delete_webhook**](WebhooksV2Api.md#delete_webhook) | **DELETE** /webhooks/{webhookId} | Delete webhook
[**get_metrics**](WebhooksV2Api.md#get_metrics) | **GET** /webhooks/{webhookId}/metrics/{metricName} | Get webhook metrics
+[**get_mtls_csr**](WebhooksV2Api.md#get_mtls_csr) | **GET** /webhooks/mtls/csr | Get mTLS CSR
[**get_notification**](WebhooksV2Api.md#get_notification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id
[**get_notification_attempts**](WebhooksV2Api.md#get_notification_attempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts
[**get_notifications**](WebhooksV2Api.md#get_notifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id
@@ -255,6 +256,77 @@ 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_mtls_csr**
+> WebhookMtlsCsrResponse get_mtls_csr()
+
+Get mTLS CSR
+
+Returns the Fireblocks Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate.
+
+
+### Example
+
+
+```python
+from fireblocks.models.webhook_mtls_csr_response import WebhookMtlsCsrResponse
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+
+ try:
+ # Get mTLS CSR
+ api_response = fireblocks.webhooks_v2.get_mtls_csr().result()
+ print("The response of WebhooksV2Api->get_mtls_csr:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling WebhooksV2Api->get_mtls_csr: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**WebhookMtlsCsrResponse**](WebhookMtlsCsrResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | The mTLS CSR PEM | * 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_notification**
> NotificationWithData get_notification(webhook_id, notification_id, include_data=include_data)
diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py
index bd38ed2d..8a80dfa5 100644
--- a/fireblocks/__init__.py
+++ b/fireblocks/__init__.py
@@ -15,7 +15,7 @@
""" # noqa: E501
-__version__ = "20.0.0"
+__version__ = "0.0.0"
# import apis into sdk package
from fireblocks.api.api_user_api import ApiUserApi
@@ -91,6 +91,9 @@
from fireblocks.models.access_registry_current_state_response import (
AccessRegistryCurrentStateResponse,
)
+from fireblocks.models.access_registry_current_state_response2 import (
+ AccessRegistryCurrentStateResponse2,
+)
from fireblocks.models.access_registry_summary_response import (
AccessRegistrySummaryResponse,
)
@@ -113,6 +116,7 @@
from fireblocks.models.ach_destination import AchDestination
from fireblocks.models.ach_payment_info import AchPaymentInfo
from fireblocks.models.action_record import ActionRecord
+from fireblocks.models.active_roles_response import ActiveRolesResponse
from fireblocks.models.adapter_processing_result import AdapterProcessingResult
from fireblocks.models.add_abi_request_dto import AddAbiRequestDto
from fireblocks.models.add_asset_to_external_wallet_request import (
@@ -131,6 +135,9 @@
)
from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto
from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse
+from fireblocks.models.address_balance_paged_response2 import (
+ AddressBalancePagedResponse2,
+)
from fireblocks.models.address_not_available_error import AddressNotAvailableError
from fireblocks.models.address_registry_add_vault_opt_outs_request import (
AddressRegistryAddVaultOptOutsRequest,
@@ -172,6 +179,10 @@
)
from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum
from fireblocks.models.alert_level_enum import AlertLevelEnum
+from fireblocks.models.allowlist_entry import AllowlistEntry
+from fireblocks.models.allowlist_entry_status import AllowlistEntryStatus
+from fireblocks.models.allowlist_metadata import AllowlistMetadata
+from fireblocks.models.allowlist_response import AllowlistResponse
from fireblocks.models.aml_alert import AmlAlert
from fireblocks.models.aml_matched_rule import AmlMatchedRule
from fireblocks.models.aml_registration_result import AmlRegistrationResult
@@ -255,6 +266,9 @@
from fireblocks.models.authorization_info import AuthorizationInfo
from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto
from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse
+from fireblocks.models.balance_history_paged_response2 import (
+ BalanceHistoryPagedResponse2,
+)
from fireblocks.models.bank_address import BankAddress
from fireblocks.models.base_provider import BaseProvider
from fireblocks.models.basic_address_request import BasicAddressRequest
@@ -363,6 +377,7 @@
from fireblocks.models.connected_account_trading_pairs_response import (
ConnectedAccountTradingPairsResponse,
)
+from fireblocks.models.connected_account_type import ConnectedAccountType
from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse
from fireblocks.models.connected_single_account import ConnectedSingleAccount
from fireblocks.models.connected_single_account_response import (
@@ -954,6 +969,13 @@
from fireblocks.models.onchain_transactions_paged_response import (
OnchainTransactionsPagedResponse,
)
+from fireblocks.models.onchain_transactions_paged_response2 import (
+ OnchainTransactionsPagedResponse2,
+)
+from fireblocks.models.onchain_transfer_event import OnchainTransferEvent
+from fireblocks.models.onchain_transfers_paged_response import (
+ OnchainTransfersPagedResponse,
+)
from fireblocks.models.one_time_address import OneTimeAddress
from fireblocks.models.one_time_address_account import OneTimeAddressAccount
from fireblocks.models.one_time_address_peer_type import OneTimeAddressPeerType
@@ -962,6 +984,11 @@
from fireblocks.models.opportunity import Opportunity
from fireblocks.models.order_details import OrderDetails
from fireblocks.models.order_execution_step import OrderExecutionStep
+from fireblocks.models.order_requirement_allowed_file_type import (
+ OrderRequirementAllowedFileType,
+)
+from fireblocks.models.order_requirement_details import OrderRequirementDetails
+from fireblocks.models.order_requirement_file import OrderRequirementFile
from fireblocks.models.order_side import OrderSide
from fireblocks.models.order_status import OrderStatus
from fireblocks.models.order_summary import OrderSummary
@@ -1012,6 +1039,9 @@
from fireblocks.models.peer_type import PeerType
from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum
from fireblocks.models.personal_identification import PersonalIdentification
+from fireblocks.models.personal_identification_document import (
+ PersonalIdentificationDocument,
+)
from fireblocks.models.personal_identification_full_name import (
PersonalIdentificationFullName,
)
@@ -1039,6 +1069,7 @@
from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
from fireblocks.models.position import Position
from fireblocks.models.position2 import Position2
+from fireblocks.models.position_related_transaction import PositionRelatedTransaction
from fireblocks.models.postal_address import PostalAddress
from fireblocks.models.pre_screening import PreScreening
from fireblocks.models.prefunded_settlement import PrefundedSettlement
@@ -1140,6 +1171,7 @@
from fireblocks.models.reward_info import RewardInfo
from fireblocks.models.rewards_info import RewardsInfo
from fireblocks.models.role_details import RoleDetails
+from fireblocks.models.role_details2 import RoleDetails2
from fireblocks.models.role_grantee import RoleGrantee
from fireblocks.models.sepa_address import SEPAAddress
from fireblocks.models.sepa_destination import SEPADestination
@@ -1326,6 +1358,9 @@
from fireblocks.models.stake_request import StakeRequest
from fireblocks.models.stake_response import StakeResponse
from fireblocks.models.staking_error_schema import StakingErrorSchema
+from fireblocks.models.staking_position_related_transactions_paginated_response import (
+ StakingPositionRelatedTransactionsPaginatedResponse,
+)
from fireblocks.models.staking_positions_paginated_response import (
StakingPositionsPaginatedResponse,
)
@@ -1334,6 +1369,9 @@
from fireblocks.models.stellar_ripple_create_params_dto import (
StellarRippleCreateParamsDto,
)
+from fireblocks.models.submit_order_requirement_request import (
+ SubmitOrderRequirementRequest,
+)
from fireblocks.models.supported_block_chains_response import (
SupportedBlockChainsResponse,
)
@@ -1526,10 +1564,12 @@
from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse
from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto
from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse
+from fireblocks.models.total_supply_paged_response2 import TotalSupplyPagedResponse2
from fireblocks.models.trading_account_type import TradingAccountType
from fireblocks.models.trading_error_schema import TradingErrorSchema
from fireblocks.models.trading_provider import TradingProvider
from fireblocks.models.transaction import Transaction
+from fireblocks.models.transaction_configurations import TransactionConfigurations
from fireblocks.models.transaction_direction import TransactionDirection
from fireblocks.models.transaction_fee import TransactionFee
from fireblocks.models.transaction_operation import TransactionOperation
@@ -1586,6 +1626,7 @@
from fireblocks.models.transfer_peer_path_type import TransferPeerPathType
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.transfer_rail import TransferRail
from fireblocks.models.transfer_receipt import TransferReceipt
from fireblocks.models.transfer_validation_failure import TransferValidationFailure
@@ -1774,6 +1815,8 @@
from fireblocks.models.webhook import Webhook
from fireblocks.models.webhook_event import WebhookEvent
from fireblocks.models.webhook_metric import WebhookMetric
+from fireblocks.models.webhook_mtls import WebhookMtls
+from fireblocks.models.webhook_mtls_csr_response import WebhookMtlsCsrResponse
from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse
from fireblocks.models.withdraw_request import WithdrawRequest
from fireblocks.models.workflow_config_status import WorkflowConfigStatus
diff --git a/fireblocks/api/connected_accounts_beta_api.py b/fireblocks/api/connected_accounts_beta_api.py
index 0f1ed5e5..c76f7948 100644
--- a/fireblocks/api/connected_accounts_beta_api.py
+++ b/fireblocks/api/connected_accounts_beta_api.py
@@ -18,9 +18,12 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictBool, StrictStr
+from pydantic import Field, StrictBool, StrictStr, field_validator
from typing import Optional
from typing_extensions import Annotated
+from fireblocks.models.allowlist_entry import AllowlistEntry
+from fireblocks.models.allowlist_entry_status import AllowlistEntryStatus
+from fireblocks.models.allowlist_response import AllowlistResponse
from fireblocks.models.connected_account_balances_response import ConnectedAccountBalancesResponse
from fireblocks.models.connected_account_rate_response import ConnectedAccountRateResponse
from fireblocks.models.connected_account_trading_pairs_response import ConnectedAccountTradingPairsResponse
@@ -306,6 +309,346 @@ def _get_connected_account_serialize(
+ @validate_call
+ def get_connected_account_allowlist(
+ self,
+ account_id: Annotated[StrictStr, Field(description="The connected account identifier")],
+ status: Annotated[Optional[AllowlistEntryStatus], Field(description="Filter by allowlist entry status")] = None,
+ asset_id: Annotated[Optional[StrictStr], Field(description="Filter by Fireblocks asset ID. See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. ")] = None,
+ network_id: Annotated[Optional[StrictStr], Field(description="Filter by Fireblocks network ID. See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. ")] = None,
+ address: Annotated[Optional[StrictStr], Field(description="Filter by specific address")] = None,
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Maximum number of entries to return")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Field to sort results by.")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="Sort order (ASC or DESC).")] = 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[AllowlistResponse]]:
+ """Get allowlist for connected account
+
+ Retrieves the address allowlist for a specified connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only.
+
+ :param account_id: The connected account identifier (required)
+ :type account_id: str
+ :param status: Filter by allowlist entry status
+ :type status: AllowlistEntryStatus
+ :param asset_id: Filter by Fireblocks asset ID. See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs.
+ :type asset_id: str
+ :param network_id: Filter by Fireblocks network ID. See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers.
+ :type network_id: str
+ :param address: Filter by specific address
+ :type address: str
+ :param page_cursor: Pagination cursor for next page
+ :type page_cursor: str
+ :param page_size: Maximum number of entries to return
+ :type page_size: int
+ :param sort_by: Field to sort results by.
+ :type sort_by: str
+ :param order: Sort order (ASC or DESC).
+ :type order: 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_connected_account_allowlist", param_name="account_id", param_value=account_id)
+
+ _param = self._get_connected_account_allowlist_serialize(
+ account_id=account_id,
+ status=status,
+ asset_id=asset_id,
+ network_id=network_id,
+ address=address,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AllowlistResponse",
+ '404': "ConnectedAccountErrorResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_connected_account_allowlist_serialize(
+ self,
+ account_id,
+ status,
+ asset_id,
+ network_id,
+ address,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ _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 account_id is not None:
+ _path_params['accountId'] = account_id
+ # process the query parameters
+ if status is not None:
+
+ _query_params.append(('status', status.value))
+
+ if asset_id is not None:
+
+ _query_params.append(('assetId', asset_id))
+
+ if network_id is not None:
+
+ _query_params.append(('networkId', network_id))
+
+ if address is not None:
+
+ _query_params.append(('address', address))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/connected_accounts/{accountId}/allowlist',
+ 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_connected_account_allowlist_entry(
+ self,
+ account_id: Annotated[StrictStr, Field(description="The connected account identifier")],
+ allowlist_id: Annotated[StrictStr, Field(description="The Fireblocks allowlist entry identifier")],
+ _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[AllowlistEntry]]:
+ """Get a single allowlist entry for a connected account
+
+ Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only.
+
+ :param account_id: The connected account identifier (required)
+ :type account_id: str
+ :param allowlist_id: The Fireblocks allowlist entry identifier (required)
+ :type allowlist_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_connected_account_allowlist_entry", param_name="account_id", param_value=account_id)
+ validate_not_empty_string(function_name="get_connected_account_allowlist_entry", param_name="allowlist_id", param_value=allowlist_id)
+
+ _param = self._get_connected_account_allowlist_entry_serialize(
+ account_id=account_id,
+ allowlist_id=allowlist_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AllowlistEntry",
+ '404': "ConnectedAccountErrorResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_connected_account_allowlist_entry_serialize(
+ self,
+ account_id,
+ allowlist_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 account_id is not None:
+ _path_params['accountId'] = account_id
+ if allowlist_id is not None:
+ _path_params['allowlistId'] = allowlist_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='/connected_accounts/{accountId}/allowlist/{allowlistId}',
+ 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_connected_account_balances(
self,
@@ -1056,3 +1399,139 @@ def _rename_connected_account_serialize(
)
+
+
+ @validate_call
+ def sync_connected_account_allowlist(
+ self,
+ account_id: Annotated[StrictStr, Field(description="The connected account identifier")],
+ 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[None]]:
+ """Sync allowlist for connected account
+
+ Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data immediately. **Rate limit:** 1 request per minute per connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only.
+
+ :param account_id: The connected account identifier (required)
+ :type account_id: str
+ :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="sync_connected_account_allowlist", param_name="account_id", param_value=account_id)
+
+ _param = self._sync_connected_account_allowlist_serialize(
+ account_id=account_id,
+ 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]] = {
+ '202': None,
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _sync_connected_account_allowlist_serialize(
+ self,
+ account_id,
+ 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 account_id is not None:
+ _path_params['accountId'] = account_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
+
+
+ # 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='/connected_accounts/{accountId}/allowlist/sync',
+ 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/onchain_data_api.py b/fireblocks/api/onchain_data_api.py
index a1c2a4c2..8c69a0c5 100644
--- a/fireblocks/api/onchain_data_api.py
+++ b/fireblocks/api/onchain_data_api.py
@@ -22,14 +22,14 @@
from pydantic import Field, StrictStr, field_validator
from typing import Dict, Optional
from typing_extensions import Annotated
-from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse
+from fireblocks.models.access_registry_current_state_response2 import AccessRegistryCurrentStateResponse2
from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse
-from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse
-from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse
-from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse
-from fireblocks.models.role_details import RoleDetails
+from fireblocks.models.address_balance_paged_response2 import AddressBalancePagedResponse2
+from fireblocks.models.balance_history_paged_response2 import BalanceHistoryPagedResponse2
+from fireblocks.models.onchain_transactions_paged_response2 import OnchainTransactionsPagedResponse2
+from fireblocks.models.role_details2 import RoleDetails2
from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse
-from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse
+from fireblocks.models.total_supply_paged_response2 import TotalSupplyPagedResponse2
from fireblocks.api_client import ApiClient, RequestSerialized
from fireblocks.api_response import ApiResponse
@@ -71,7 +71,7 @@ def get_access_registry_current_state(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[AccessRegistryCurrentStateResponse]]:
+ ) -> Future[ApiResponse[AccessRegistryCurrentStateResponse2]]:
"""Get the current state of addresses in an access registry
Returns the current state of addresses in the specified access registry. Only addresses that are currently active (added but not removed) are included.
@@ -127,7 +127,7 @@ def get_access_registry_current_state(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "AccessRegistryCurrentStateResponse",
+ '200': "AccessRegistryCurrentStateResponse2",
'default': "ErrorSchema",
}
@@ -377,7 +377,7 @@ def get_active_roles_for_contract(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[Dict[str, RoleDetails]]]:
+ ) -> Future[ApiResponse[Dict[str, RoleDetails2]]]:
"""List of active roles for a given contract address and base asset ID
Returns a list of currently active roles for the specified baseAssetId and contractAddress.
@@ -421,7 +421,7 @@ def get_active_roles_for_contract(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "Dict[str, RoleDetails]",
+ '200': "Dict[str, RoleDetails2]",
'default': "ErrorSchema",
}
@@ -522,7 +522,7 @@ def get_contract_balance_history(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[BalanceHistoryPagedResponse]]:
+ ) -> Future[ApiResponse[BalanceHistoryPagedResponse2]]:
"""Get historical balance data for a specific account in a contract
Returns the paginated balance history of the specified account in a contract with optional date range and interval filtering.
@@ -591,7 +591,7 @@ def get_contract_balance_history(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "BalanceHistoryPagedResponse",
+ '200': "BalanceHistoryPagedResponse2",
'default': "ErrorSchema",
}
@@ -884,7 +884,7 @@ def get_contract_total_supply(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[TotalSupplyPagedResponse]]:
+ ) -> Future[ApiResponse[TotalSupplyPagedResponse2]]:
"""Get historical total supply data for a contract
Returns the paginated total supply history of the specified contract with optional date range and interval filtering.
@@ -949,7 +949,7 @@ def get_contract_total_supply(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "TotalSupplyPagedResponse",
+ '200': "TotalSupplyPagedResponse2",
'default': "ErrorSchema",
}
@@ -1100,7 +1100,7 @@ def get_latest_balances_for_contract(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[AddressBalancePagedResponse]]:
+ ) -> Future[ApiResponse[AddressBalancePagedResponse2]]:
"""Get latest balances for all addresses holding tokens from a contract
Returns the latest balance for each unique address with support for numeric balance sorting. The `prev` cursor is reserved for future support.
@@ -1159,7 +1159,7 @@ def get_latest_balances_for_contract(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "AddressBalancePagedResponse",
+ '200': "AddressBalancePagedResponse2",
'default': "ErrorSchema",
}
@@ -1283,7 +1283,7 @@ def get_onchain_transactions(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[OnchainTransactionsPagedResponse]]:
+ ) -> Future[ApiResponse[OnchainTransactionsPagedResponse2]]:
"""Fetch onchain transactions for a contract
Returns a paginated list of onchain transactions for the specified contract address and base asset ID, optionally filtered by date range.
@@ -1345,7 +1345,7 @@ def get_onchain_transactions(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "OnchainTransactionsPagedResponse",
+ '200': "OnchainTransactionsPagedResponse2",
'default': "ErrorSchema",
}
diff --git a/fireblocks/api/staking_api.py b/fireblocks/api/staking_api.py
index 9a6d0b9d..c2102f22 100644
--- a/fireblocks/api/staking_api.py
+++ b/fireblocks/api/staking_api.py
@@ -33,6 +33,7 @@
from fireblocks.models.split_response import SplitResponse
from fireblocks.models.stake_request import StakeRequest
from fireblocks.models.stake_response import StakeResponse
+from fireblocks.models.staking_position_related_transactions_paginated_response import StakingPositionRelatedTransactionsPaginatedResponse
from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse
from fireblocks.models.staking_provider import StakingProvider
from fireblocks.models.unstake_request import UnstakeRequest
@@ -1055,6 +1056,167 @@ def _get_delegation_by_id_serialize(
+ @validate_call
+ def get_position_related_transactions(
+ self,
+ id: Annotated[StrictStr, Field(description="Unique identifier of the staking position.")],
+ page_size: Annotated[int, Field(le=100, strict=True, ge=1, description="Number of results per page (minimum: 1, maximum: 100).")],
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor for the next page of results. Use the value from the 'next' field in the previous response.")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering for completed/failed history (default DESC). The in-flight transaction is always returned first.")] = 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[StakingPositionRelatedTransactionsPaginatedResponse]]:
+ """List related transactions for a position
+
+ Returns enriched transaction history for a staking position with cursor-based pagination. Includes in-flight transactions with status pending. The in-flight transaction is always returned first; completed and failed history is ordered by the order parameter.
+
+ :param id: Unique identifier of the staking position. (required)
+ :type id: str
+ :param page_size: Number of results per page (minimum: 1, maximum: 100). (required)
+ :type page_size: int
+ :param page_cursor: Cursor for the next page of results. Use the value from the 'next' field in the previous response.
+ :type page_cursor: str
+ :param order: ASC / DESC ordering for completed/failed history (default DESC). The in-flight transaction is always returned first.
+ :type order: 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_position_related_transactions", param_name="id", param_value=id)
+
+ _param = self._get_position_related_transactions_serialize(
+ id=id,
+ page_size=page_size,
+ page_cursor=page_cursor,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StakingPositionRelatedTransactionsPaginatedResponse",
+ '400': "StakingErrorSchema",
+ '403': "StakingErrorSchema",
+ '404': "StakingErrorSchema",
+ '429': "StakingErrorSchema",
+ '500': "StakingErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_position_related_transactions_serialize(
+ self,
+ id,
+ page_size,
+ page_cursor,
+ order,
+ _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 id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/staking/positions/{id}/related_transactions',
+ 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_positions(
self,
diff --git a/fireblocks/api/tokenization_api.py b/fireblocks/api/tokenization_api.py
index 76272e49..8e462045 100644
--- a/fireblocks/api/tokenization_api.py
+++ b/fireblocks/api/tokenization_api.py
@@ -18,10 +18,17 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from datetime import datetime
+from pydantic import Field, StrictStr, field_validator
from typing import Any, List, Optional, Union
from typing_extensions import Annotated
+from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse
+from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse
+from fireblocks.models.active_roles_response import ActiveRolesResponse
from fireblocks.models.adapter_processing_result import AdapterProcessingResult
+from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto
+from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse
+from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse
from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto
from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto
from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto
@@ -37,6 +44,8 @@
from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse
from fireblocks.models.get_linked_collections_paginated_response import GetLinkedCollectionsPaginatedResponse
from fireblocks.models.linked_tokens_count import LinkedTokensCount
+from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse
+from fireblocks.models.onchain_transfers_paged_response import OnchainTransfersPagedResponse
from fireblocks.models.reissue_multichain_token_request import ReissueMultichainTokenRequest
from fireblocks.models.remove_layer_zero_adapters_request import RemoveLayerZeroAdaptersRequest
from fireblocks.models.remove_layer_zero_adapters_response import RemoveLayerZeroAdaptersResponse
@@ -46,9 +55,11 @@
from fireblocks.models.set_layer_zero_dvn_config_response import SetLayerZeroDvnConfigResponse
from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest
from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse
+from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse
from fireblocks.models.token_link_dto import TokenLinkDto
from fireblocks.models.token_link_request_dto import TokenLinkRequestDto
from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse
+from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse
from fireblocks.models.validate_layer_zero_channel_response import ValidateLayerZeroChannelResponse
from fireblocks.api_client import ApiClient, RequestSerialized
@@ -1910,6 +1921,1716 @@ def _get_linked_tokens_count_serialize(
+ @validate_call
+ def get_token_access_registry_addresses(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more than 100 will return 100 items")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum).")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = 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[AccessRegistryCurrentStateResponse]]:
+ """Get current state of addresses in an access registry
+
+ Returns the currently active addresses in the access registry (added but not removed).
+
+ :param id: The token link id (required)
+ :type id: str
+ :param page_cursor: Page cursor to get the next page
+ :type page_cursor: str
+ :param page_size: Number of items per page (max 100), requesting more than 100 will return 100 items
+ :type page_size: int
+ :param sort_by: Sorting field (enum).
+ :type sort_by: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: 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_token_access_registry_addresses", param_name="id", param_value=id)
+
+ _param = self._get_token_access_registry_addresses_serialize(
+ id=id,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AccessRegistryCurrentStateResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_access_registry_addresses_serialize(
+ self,
+ id,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ _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 id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/tokenization/access_registries/{id}/addresses',
+ 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_token_access_registry_summary(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ _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[AccessRegistrySummaryResponse]]:
+ """Get summary of an access registry
+
+ Returns a summary of the current state of the access registry.
+
+ :param id: The token link id (required)
+ :type 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_token_access_registry_summary", param_name="id", param_value=id)
+
+ _param = self._get_token_access_registry_summary_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AccessRegistrySummaryResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_access_registry_summary_serialize(
+ self,
+ 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 id is not None:
+ _path_params['id'] = 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='/tokenization/access_registries/{id}/summary',
+ 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_token_balance_for_account(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ account_address: Annotated[StrictStr, Field(description="The account address to get balance history for")],
+ _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[AddressBalanceItemDto]]:
+ """Get the latest balance for a specific account
+
+ Returns the latest token balance for the specified account address.
+
+ :param id: The token link id (required)
+ :type id: str
+ :param account_address: The account address to get balance history for (required)
+ :type account_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="get_token_balance_for_account", param_name="id", param_value=id)
+ validate_not_empty_string(function_name="get_token_balance_for_account", param_name="account_address", param_value=account_address)
+
+ _param = self._get_token_balance_for_account_serialize(
+ id=id,
+ account_address=account_address,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AddressBalanceItemDto",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_balance_for_account_serialize(
+ self,
+ id,
+ account_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
+ if id is not None:
+ _path_params['id'] = id
+ if account_address is not None:
+ _path_params['accountAddress'] = account_address
+ # 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='/tokenization/tokens/{id}/balances/{accountAddress}',
+ 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_token_balance_history(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ account_address: Annotated[StrictStr, Field(description="The account address to get balance history for")],
+ start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None,
+ end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None,
+ interval: Annotated[Optional[StrictStr], Field(description="Time interval for grouping data")] = None,
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more than 100 will return 100 items")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum). Sorting only supported by 'blockTimestamp'")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = 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[BalanceHistoryPagedResponse]]:
+ """Get balance history for a specific account
+
+ Returns paginated balance history for the specified account address with optional time-range filtering.
+
+ :param id: The token link id (required)
+ :type id: str
+ :param account_address: The account address to get balance history for (required)
+ :type account_address: str
+ :param start_date: Start date of the time range in ISO 8601 format
+ :type start_date: datetime
+ :param end_date: End date of the time range in ISO 8601 format
+ :type end_date: datetime
+ :param interval: Time interval for grouping data
+ :type interval: str
+ :param page_cursor: Page cursor to get the next page
+ :type page_cursor: str
+ :param page_size: Number of items per page (max 100), requesting more than 100 will return 100 items
+ :type page_size: int
+ :param sort_by: Sorting field (enum). Sorting only supported by 'blockTimestamp'
+ :type sort_by: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: 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_token_balance_history", param_name="id", param_value=id)
+ validate_not_empty_string(function_name="get_token_balance_history", param_name="account_address", param_value=account_address)
+
+ _param = self._get_token_balance_history_serialize(
+ id=id,
+ account_address=account_address,
+ start_date=start_date,
+ end_date=end_date,
+ interval=interval,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "BalanceHistoryPagedResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_balance_history_serialize(
+ self,
+ id,
+ account_address,
+ start_date,
+ end_date,
+ interval,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ _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 id is not None:
+ _path_params['id'] = id
+ if account_address is not None:
+ _path_params['accountAddress'] = account_address
+ # process the query parameters
+ if start_date is not None:
+ if isinstance(start_date, datetime):
+ _query_params.append(
+ (
+ 'startDate',
+ start_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('startDate', start_date))
+
+ if end_date is not None:
+ if isinstance(end_date, datetime):
+ _query_params.append(
+ (
+ 'endDate',
+ end_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('endDate', end_date))
+
+ if interval is not None:
+
+ _query_params.append(('interval', interval))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/tokenization/tokens/{id}/balances/{accountAddress}/history',
+ 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_token_balances(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more than 100 will return 100 items")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field for balances")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = 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[AddressBalancePagedResponse]]:
+ """Get latest balances for all holders of a token
+
+ Returns the latest balance for each unique address holding this token.
+
+ :param id: The token link id (required)
+ :type id: str
+ :param page_cursor: Page cursor to get the next page
+ :type page_cursor: str
+ :param page_size: Number of items per page (max 100), requesting more than 100 will return 100 items
+ :type page_size: int
+ :param sort_by: Sorting field for balances
+ :type sort_by: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: 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_token_balances", param_name="id", param_value=id)
+
+ _param = self._get_token_balances_serialize(
+ id=id,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AddressBalancePagedResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_balances_serialize(
+ self,
+ id,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ _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 id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/tokenization/tokens/{id}/balances',
+ 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_token_contract_summary(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ _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[TokenContractSummaryResponse]]:
+ """Get onchain summary for a token
+
+ Returns the total number of unique holders and the total supply for the token contract.
+
+ :param id: The token link id (required)
+ :type 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_token_contract_summary", param_name="id", param_value=id)
+
+ _param = self._get_token_contract_summary_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TokenContractSummaryResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_contract_summary_serialize(
+ self,
+ 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 id is not None:
+ _path_params['id'] = 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='/tokenization/tokens/{id}/summary',
+ 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_token_rbac(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ _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[ActiveRolesResponse]]:
+ """Get active RBAC roles for a token
+
+ Returns a list of currently active roles for the token contract.
+
+ :param id: The token link id (required)
+ :type 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_token_rbac", param_name="id", param_value=id)
+
+ _param = self._get_token_rbac_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ActiveRolesResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_rbac_serialize(
+ self,
+ 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 id is not None:
+ _path_params['id'] = 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='/tokenization/tokens/{id}/rbac',
+ 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_token_total_supply(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None,
+ end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None,
+ interval: Annotated[Optional[StrictStr], Field(description="Time interval for grouping data")] = None,
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more than 100 will return 100 items")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum). Sorting only supported by 'blockTimestamp'")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = 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[TotalSupplyPagedResponse]]:
+ """Get historical total supply for a token
+
+ Returns paginated total supply history for the token contract with optional time-range filtering and binning.
+
+ :param id: The token link id (required)
+ :type id: str
+ :param start_date: Start date of the time range in ISO 8601 format
+ :type start_date: datetime
+ :param end_date: End date of the time range in ISO 8601 format
+ :type end_date: datetime
+ :param interval: Time interval for grouping data
+ :type interval: str
+ :param page_cursor: Page cursor to get the next page
+ :type page_cursor: str
+ :param page_size: Number of items per page (max 100), requesting more than 100 will return 100 items
+ :type page_size: int
+ :param sort_by: Sorting field (enum). Sorting only supported by 'blockTimestamp'
+ :type sort_by: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: 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_token_total_supply", param_name="id", param_value=id)
+
+ _param = self._get_token_total_supply_serialize(
+ id=id,
+ start_date=start_date,
+ end_date=end_date,
+ interval=interval,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TotalSupplyPagedResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_total_supply_serialize(
+ self,
+ id,
+ start_date,
+ end_date,
+ interval,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ _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 id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if start_date is not None:
+ if isinstance(start_date, datetime):
+ _query_params.append(
+ (
+ 'startDate',
+ start_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('startDate', start_date))
+
+ if end_date is not None:
+ if isinstance(end_date, datetime):
+ _query_params.append(
+ (
+ 'endDate',
+ end_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('endDate', end_date))
+
+ if interval is not None:
+
+ _query_params.append(('interval', interval))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/tokenization/tokens/{id}/total_supply',
+ 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_token_transactions(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None,
+ end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None,
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more than 100 will return 100 items")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum).")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = 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[OnchainTransactionsPagedResponse]]:
+ """Get onchain transactions for a token
+
+ Returns a paginated list of onchain transactions for the token contract, optionally filtered by date range.
+
+ :param id: The token link id (required)
+ :type id: str
+ :param start_date: Start date of the time range in ISO 8601 format
+ :type start_date: datetime
+ :param end_date: End date of the time range in ISO 8601 format
+ :type end_date: datetime
+ :param page_cursor: Page cursor to get the next page
+ :type page_cursor: str
+ :param page_size: Number of items per page (max 100), requesting more than 100 will return 100 items
+ :type page_size: int
+ :param sort_by: Sorting field (enum).
+ :type sort_by: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: 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_token_transactions", param_name="id", param_value=id)
+
+ _param = self._get_token_transactions_serialize(
+ id=id,
+ start_date=start_date,
+ end_date=end_date,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "OnchainTransactionsPagedResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_transactions_serialize(
+ self,
+ id,
+ start_date,
+ end_date,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ _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 id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if start_date is not None:
+ if isinstance(start_date, datetime):
+ _query_params.append(
+ (
+ 'startDate',
+ start_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('startDate', start_date))
+
+ if end_date is not None:
+ if isinstance(end_date, datetime):
+ _query_params.append(
+ (
+ 'endDate',
+ end_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('endDate', end_date))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # 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='/tokenization/tokens/{id}/transactions',
+ 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_token_transfers(
+ self,
+ id: Annotated[StrictStr, Field(description="The token link id")],
+ start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None,
+ end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None,
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None,
+ page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more than 100 will return 100 items")] = None,
+ sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field for transfers")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None,
+ sender: Annotated[Optional[StrictStr], Field(description="Filter transfers by sender address")] = None,
+ receiver: Annotated[Optional[StrictStr], Field(description="Filter transfers by receiver address")] = 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[OnchainTransfersPagedResponse]]:
+ """Get onchain transfers for a token
+
+ Returns a paginated list of ERC20 transfer events for the token contract, optionally filtered by date range.
+
+ :param id: The token link id (required)
+ :type id: str
+ :param start_date: Start date of the time range in ISO 8601 format
+ :type start_date: datetime
+ :param end_date: End date of the time range in ISO 8601 format
+ :type end_date: datetime
+ :param page_cursor: Page cursor to get the next page
+ :type page_cursor: str
+ :param page_size: Number of items per page (max 100), requesting more than 100 will return 100 items
+ :type page_size: int
+ :param sort_by: Sorting field for transfers
+ :type sort_by: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: str
+ :param sender: Filter transfers by sender address
+ :type sender: str
+ :param receiver: Filter transfers by receiver address
+ :type receiver: 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_token_transfers", param_name="id", param_value=id)
+
+ _param = self._get_token_transfers_serialize(
+ id=id,
+ start_date=start_date,
+ end_date=end_date,
+ page_cursor=page_cursor,
+ page_size=page_size,
+ sort_by=sort_by,
+ order=order,
+ sender=sender,
+ receiver=receiver,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "OnchainTransfersPagedResponse",
+ '404': "NotFoundException",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_token_transfers_serialize(
+ self,
+ id,
+ start_date,
+ end_date,
+ page_cursor,
+ page_size,
+ sort_by,
+ order,
+ sender,
+ receiver,
+ _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 id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if start_date is not None:
+ if isinstance(start_date, datetime):
+ _query_params.append(
+ (
+ 'startDate',
+ start_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('startDate', start_date))
+
+ if end_date is not None:
+ if isinstance(end_date, datetime):
+ _query_params.append(
+ (
+ 'endDate',
+ end_date.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('endDate', end_date))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if sort_by is not None:
+
+ _query_params.append(('sortBy', sort_by))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ if sender is not None:
+
+ _query_params.append(('sender', sender))
+
+ if receiver is not None:
+
+ _query_params.append(('receiver', receiver))
+
+ # 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='/tokenization/tokens/{id}/transfers',
+ 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 issue_new_token(
self,
diff --git a/fireblocks/api/trading_beta_api.py b/fireblocks/api/trading_beta_api.py
index 645494cf..f8da22e7 100644
--- a/fireblocks/api/trading_beta_api.py
+++ b/fireblocks/api/trading_beta_api.py
@@ -18,8 +18,8 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr, field_validator
-from typing import List, Optional
+from pydantic import Field, StrictBytes, StrictStr, field_validator
+from typing import List, Optional, Tuple, Union
from typing_extensions import Annotated
from fireblocks.models.create_offers_request import CreateOffersRequest
from fireblocks.models.create_order_request import CreateOrderRequest
@@ -27,11 +27,13 @@
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_requirement_details import OrderRequirementDetails
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.submit_order_requirement_request import SubmitOrderRequirementRequest
from fireblocks.models.trading_provider import TradingProvider
from fireblocks.api_client import ApiClient, RequestSerialized
@@ -799,6 +801,141 @@ def _get_order_serialize(
+ @validate_call
+ def get_order_requirements(
+ self,
+ order_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the order for which the order requirement is issued.")],
+ _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[OrderRequirementDetails]]:
+ """Get order requirement details for an order
+
+ Fetch order requirement details for an order that is in `AWAITING_INFORMATION` status. The response includes `requirementId` and `dueBy` metadata, a `requiredData` JSON Schema (Draft-7) describing the shape of the `data` object expected on `POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`). 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 order_id: The ID of the order for which the order requirement is issued. (required)
+ :type order_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_order_requirements", param_name="order_id", param_value=order_id)
+
+ _param = self._get_order_requirements_serialize(
+ order_id=order_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "OrderRequirementDetails",
+ '401': "TradingErrorSchema",
+ '403': "TradingErrorSchema",
+ '404': "TradingErrorSchema",
+ '409': "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 _get_order_requirements_serialize(
+ self,
+ order_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 order_id is not None:
+ _path_params['orderId'] = order_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='/trading/orders/{orderId}/requirement',
+ 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_orders(
self,
@@ -1283,3 +1420,337 @@ def _get_trading_providers_serialize(
)
+
+
+ @validate_call
+ def submit_order_requirements(
+ self,
+ order_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the order to submit the order requirement response for.")],
+ submit_order_requirement_request: SubmitOrderRequirementRequest,
+ 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[None]]:
+ """Submit a response to an order requirement
+
+ Submit the user's textual response to an order requirement on an order that is in `AWAITING_INFORMATION` status. The request body carries `data` — a free-form object conforming to the `requiredData` JSON Schema returned by the GET endpoint. Any required files are uploaded separately via `POST /trading/orders/{orderId}/requirement/file`. 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 order_id: The ID of the order to submit the order requirement response for. (required)
+ :type order_id: str
+ :param submit_order_requirement_request: (required)
+ :type submit_order_requirement_request: SubmitOrderRequirementRequest
+ :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="submit_order_requirements", param_name="order_id", param_value=order_id)
+
+ _param = self._submit_order_requirements_serialize(
+ order_id=order_id,
+ submit_order_requirement_request=submit_order_requirement_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]] = {
+ '202': None,
+ '400': "TradingErrorSchema",
+ '401': "TradingErrorSchema",
+ '403': "TradingErrorSchema",
+ '404': "TradingErrorSchema",
+ '409': "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 _submit_order_requirements_serialize(
+ self,
+ order_id,
+ submit_order_requirement_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 order_id is not None:
+ _path_params['orderId'] = order_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 submit_order_requirement_request is not None:
+ _body_params = submit_order_requirement_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/orders/{orderId}/requirement/data',
+ 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 upload_order_requirement_file(
+ self,
+ order_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the order to upload the order requirement file for.")],
+ file_key: Annotated[StrictStr, Field(description="Identifier of the required file this upload satisfies. Must match a `fileKey` from `requiredFiles` on the GET response.")],
+ file: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description="The binary file content. The file's type must be one of the supported OrderRequirementAllowedFileType values; the file name and type are derived from the uploaded part.")],
+ 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[None]]:
+ """Upload a file for an order requirement
+
+ Upload a single file (multipart/form-data) in response to an order requirement on an order that is in `AWAITING_INFORMATION` status. Call this endpoint once per required file. Send `fileKey` (matching a `fileKey` from `requiredFiles` on the GET response) and the binary `file`. Its type must be one of the supported file formats. Fireblocks encrypts each file and uploads it individually to the underlying provider. The textual response is submitted separately via `POST /trading/orders/{orderId}/requirement/data`. 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 order_id: The ID of the order to upload the order requirement file for. (required)
+ :type order_id: str
+ :param file_key: Identifier of the required file this upload satisfies. Must match a `fileKey` from `requiredFiles` on the GET response. (required)
+ :type file_key: str
+ :param file: The binary file content. The file's type must be one of the supported OrderRequirementAllowedFileType values; the file name and type are derived from the uploaded part. (required)
+ :type file: bytearray
+ :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="upload_order_requirement_file", param_name="order_id", param_value=order_id)
+ validate_not_empty_string(function_name="upload_order_requirement_file", param_name="file_key", param_value=file_key)
+
+ _param = self._upload_order_requirement_file_serialize(
+ order_id=order_id,
+ file_key=file_key,
+ file=file,
+ 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]] = {
+ '202': None,
+ '400': "TradingErrorSchema",
+ '401': "TradingErrorSchema",
+ '403': "TradingErrorSchema",
+ '404': "TradingErrorSchema",
+ '409': "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 _upload_order_requirement_file_serialize(
+ self,
+ order_id,
+ file_key,
+ file,
+ 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 order_id is not None:
+ _path_params['orderId'] = order_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
+ if file_key is not None:
+ _form_params.append(('fileKey', file_key))
+ if file is not None:
+ _files['file'] = file
+ # 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'
+ ]
+ )
+
+ # 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(
+ [
+ 'multipart/form-data'
+ ]
+ )
+ )
+ 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/orders/{orderId}/requirement/file',
+ 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/webhooks_v2_api.py b/fireblocks/api/webhooks_v2_api.py
index 38db3c95..09cbe5ee 100644
--- a/fireblocks/api/webhooks_v2_api.py
+++ b/fireblocks/api/webhooks_v2_api.py
@@ -36,6 +36,7 @@
from fireblocks.models.webhook import Webhook
from fireblocks.models.webhook_event import WebhookEvent
from fireblocks.models.webhook_metric import WebhookMetric
+from fireblocks.models.webhook_mtls_csr_response import WebhookMtlsCsrResponse
from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse
from fireblocks.api_client import ApiClient, RequestSerialized
@@ -471,6 +472,127 @@ def _get_metrics_serialize(
+ @validate_call
+ def get_mtls_csr(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Future[ApiResponse[WebhookMtlsCsrResponse]]:
+ """Get mTLS CSR
+
+ Returns the Fireblocks Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate.
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+
+ _param = self._get_mtls_csr_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "WebhookMtlsCsrResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_mtls_csr_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, 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
+ # 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='/webhooks/mtls/csr',
+ 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_notification(
self,
diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py
index ee98dfc3..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: 20.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 404a5a28..568f9f25 100644
--- a/fireblocks/models/__init__.py
+++ b/fireblocks/models/__init__.py
@@ -20,6 +20,7 @@
from fireblocks.models.abi_function import AbiFunction
from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem
from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse
+from fireblocks.models.access_registry_current_state_response2 import AccessRegistryCurrentStateResponse2
from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse
from fireblocks.models.access_type import AccessType
from fireblocks.models.account import Account
@@ -38,6 +39,7 @@
from fireblocks.models.ach_destination import AchDestination
from fireblocks.models.ach_payment_info import AchPaymentInfo
from fireblocks.models.action_record import ActionRecord
+from fireblocks.models.active_roles_response import ActiveRolesResponse
from fireblocks.models.adapter_processing_result import AdapterProcessingResult
from fireblocks.models.add_abi_request_dto import AddAbiRequestDto
from fireblocks.models.add_asset_to_external_wallet_request import AddAssetToExternalWalletRequest
@@ -52,6 +54,7 @@
from fireblocks.models.additional_info_request_additional_info import AdditionalInfoRequestAdditionalInfo
from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto
from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse
+from fireblocks.models.address_balance_paged_response2 import AddressBalancePagedResponse2
from fireblocks.models.address_not_available_error import AddressNotAvailableError
from fireblocks.models.address_registry_add_vault_opt_outs_request import AddressRegistryAddVaultOptOutsRequest
from fireblocks.models.address_registry_add_vault_opt_outs_request_vault_account_ids_inner import AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner
@@ -69,6 +72,10 @@
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.allowlist_entry import AllowlistEntry
+from fireblocks.models.allowlist_entry_status import AllowlistEntryStatus
+from fireblocks.models.allowlist_metadata import AllowlistMetadata
+from fireblocks.models.allowlist_response import AllowlistResponse
from fireblocks.models.aml_alert import AmlAlert
from fireblocks.models.aml_matched_rule import AmlMatchedRule
from fireblocks.models.aml_registration_result import AmlRegistrationResult
@@ -132,6 +139,7 @@
from fireblocks.models.authorization_info import AuthorizationInfo
from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto
from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse
+from fireblocks.models.balance_history_paged_response2 import BalanceHistoryPagedResponse2
from fireblocks.models.bank_address import BankAddress
from fireblocks.models.base_provider import BaseProvider
from fireblocks.models.basic_address_request import BasicAddressRequest
@@ -204,6 +212,7 @@
from fireblocks.models.connected_account_trading_pair import ConnectedAccountTradingPair
from fireblocks.models.connected_account_trading_pair_supported_type import ConnectedAccountTradingPairSupportedType
from fireblocks.models.connected_account_trading_pairs_response import ConnectedAccountTradingPairsResponse
+from fireblocks.models.connected_account_type import ConnectedAccountType
from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse
from fireblocks.models.connected_single_account import ConnectedSingleAccount
from fireblocks.models.connected_single_account_response import ConnectedSingleAccountResponse
@@ -573,6 +582,9 @@
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.onchain_transactions_paged_response2 import OnchainTransactionsPagedResponse2
+from fireblocks.models.onchain_transfer_event import OnchainTransferEvent
+from fireblocks.models.onchain_transfers_paged_response import OnchainTransfersPagedResponse
from fireblocks.models.one_time_address import OneTimeAddress
from fireblocks.models.one_time_address_account import OneTimeAddressAccount
from fireblocks.models.one_time_address_peer_type import OneTimeAddressPeerType
@@ -581,6 +593,9 @@
from fireblocks.models.opportunity import Opportunity
from fireblocks.models.order_details import OrderDetails
from fireblocks.models.order_execution_step import OrderExecutionStep
+from fireblocks.models.order_requirement_allowed_file_type import OrderRequirementAllowedFileType
+from fireblocks.models.order_requirement_details import OrderRequirementDetails
+from fireblocks.models.order_requirement_file import OrderRequirementFile
from fireblocks.models.order_side import OrderSide
from fireblocks.models.order_status import OrderStatus
from fireblocks.models.order_summary import OrderSummary
@@ -621,6 +636,7 @@
from fireblocks.models.peer_type import PeerType
from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum
from fireblocks.models.personal_identification import PersonalIdentification
+from fireblocks.models.personal_identification_document import PersonalIdentificationDocument
from fireblocks.models.personal_identification_full_name import PersonalIdentificationFullName
from fireblocks.models.personal_identification_type import PersonalIdentificationType
from fireblocks.models.pix_address import PixAddress
@@ -646,6 +662,7 @@
from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
from fireblocks.models.position import Position
from fireblocks.models.position2 import Position2
+from fireblocks.models.position_related_transaction import PositionRelatedTransaction
from fireblocks.models.postal_address import PostalAddress
from fireblocks.models.pre_screening import PreScreening
from fireblocks.models.prefunded_settlement import PrefundedSettlement
@@ -709,6 +726,7 @@
from fireblocks.models.reward_info import RewardInfo
from fireblocks.models.rewards_info import RewardsInfo
from fireblocks.models.role_details import RoleDetails
+from fireblocks.models.role_details2 import RoleDetails2
from fireblocks.models.role_grantee import RoleGrantee
from fireblocks.models.sepa_address import SEPAAddress
from fireblocks.models.sepa_destination import SEPADestination
@@ -827,10 +845,12 @@
from fireblocks.models.stake_request import StakeRequest
from fireblocks.models.stake_response import StakeResponse
from fireblocks.models.staking_error_schema import StakingErrorSchema
+from fireblocks.models.staking_position_related_transactions_paginated_response import StakingPositionRelatedTransactionsPaginatedResponse
from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse
from fireblocks.models.staking_provider import StakingProvider
from fireblocks.models.status import Status
from fireblocks.models.stellar_ripple_create_params_dto import StellarRippleCreateParamsDto
+from fireblocks.models.submit_order_requirement_request import SubmitOrderRequirementRequest
from fireblocks.models.supported_block_chains_response import SupportedBlockChainsResponse
from fireblocks.models.supported_blockchain import SupportedBlockchain
from fireblocks.models.swift_address import SwiftAddress
@@ -951,10 +971,12 @@
from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse
from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto
from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse
+from fireblocks.models.total_supply_paged_response2 import TotalSupplyPagedResponse2
from fireblocks.models.trading_account_type import TradingAccountType
from fireblocks.models.trading_error_schema import TradingErrorSchema
from fireblocks.models.trading_provider import TradingProvider
from fireblocks.models.transaction import Transaction
+from fireblocks.models.transaction_configurations import TransactionConfigurations
from fireblocks.models.transaction_direction import TransactionDirection
from fireblocks.models.transaction_fee import TransactionFee
from fireblocks.models.transaction_operation import TransactionOperation
@@ -987,6 +1009,7 @@
from fireblocks.models.transfer_peer_path_type import TransferPeerPathType
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.transfer_rail import TransferRail
from fireblocks.models.transfer_receipt import TransferReceipt
from fireblocks.models.transfer_validation_failure import TransferValidationFailure
@@ -1097,6 +1120,8 @@
from fireblocks.models.webhook import Webhook
from fireblocks.models.webhook_event import WebhookEvent
from fireblocks.models.webhook_metric import WebhookMetric
+from fireblocks.models.webhook_mtls import WebhookMtls
+from fireblocks.models.webhook_mtls_csr_response import WebhookMtlsCsrResponse
from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse
from fireblocks.models.withdraw_request import WithdrawRequest
from fireblocks.models.workflow_config_status import WorkflowConfigStatus
diff --git a/fireblocks/models/access_registry_current_state_response2.py b/fireblocks/models/access_registry_current_state_response2.py
new file mode 100644
index 00000000..f9e1c721
--- /dev/null
+++ b/fireblocks/models/access_registry_current_state_response2.py
@@ -0,0 +1,102 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AccessRegistryCurrentStateResponse2(BaseModel):
+ """
+ AccessRegistryCurrentStateResponse2
+ """ # noqa: E501
+ data: List[AccessRegistryAddressItem] = Field(description="Array of active addresses in the access registry")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for next page")
+ prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page")
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of active addresses in the access registry")
+ __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"]
+
+ 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 AccessRegistryCurrentStateResponse2 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AccessRegistryCurrentStateResponse2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [AccessRegistryAddressItem.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next"),
+ "prev": obj.get("prev"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/active_roles_response.py b/fireblocks/models/active_roles_response.py
new file mode 100644
index 00000000..4e5c93fa
--- /dev/null
+++ b/fireblocks/models/active_roles_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
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.role_details import RoleDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ActiveRolesResponse(BaseModel):
+ """
+ ActiveRolesResponse
+ """ # noqa: E501
+ active_roles: Dict[str, RoleDetails] = Field(description="Active RBAC roles on the contract, keyed by role name (e.g. DEFAULT_ADMIN_ROLE, MINTER_ROLE). Each entry contains the on-chain role hash, a human-readable description, and the list of accounts currently granted that role.", alias="activeRoles")
+ __properties: ClassVar[List[str]] = ["activeRoles"]
+
+ 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 ActiveRolesResponse 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 value in active_roles (dict)
+ _field_dict = {}
+ if self.active_roles:
+ for _key_active_roles in self.active_roles:
+ if self.active_roles[_key_active_roles]:
+ _field_dict[_key_active_roles] = self.active_roles[_key_active_roles].to_dict()
+ _dict['activeRoles'] = _field_dict
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ActiveRolesResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "activeRoles": dict(
+ (_k, RoleDetails.from_dict(_v))
+ for _k, _v in obj["activeRoles"].items()
+ )
+ if obj.get("activeRoles") is not None
+ else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/address_balance_paged_response2.py b/fireblocks/models/address_balance_paged_response2.py
new file mode 100644
index 00000000..ab0879c4
--- /dev/null
+++ b/fireblocks/models/address_balance_paged_response2.py
@@ -0,0 +1,102 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AddressBalancePagedResponse2(BaseModel):
+ """
+ AddressBalancePagedResponse2
+ """ # noqa: E501
+ data: List[AddressBalanceItemDto] = Field(description="Array of address balance data")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for next page")
+ prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page (reserved for future support)")
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items")
+ __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"]
+
+ 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 AddressBalancePagedResponse2 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AddressBalancePagedResponse2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [AddressBalanceItemDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next"),
+ "prev": obj.get("prev"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/allowlist_entry.py b/fireblocks/models/allowlist_entry.py
new file mode 100644
index 00000000..e7c3ccf2
--- /dev/null
+++ b/fireblocks/models/allowlist_entry.py
@@ -0,0 +1,128 @@
+# 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.allowlist_entry_status import AllowlistEntryStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AllowlistEntry(BaseModel):
+ """
+ AllowlistEntry
+ """ # noqa: E501
+ id: StrictStr = Field(description="Unique identifier for the allowlist entry")
+ address: StrictStr = Field(description="The blockchain address")
+ assets: List[StrictStr] = Field(description="Assets approved for this address. Each value is either a Fireblocks asset ID (when the provider's asset maps to a Fireblocks-supported asset) or the raw provider asset symbol (when no mapping exists). Treat values as opaque strings. Possible combinations: - One or more specific asset values (e.g., `[\"BTC\", \"ETH\"]`) See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. ")
+ networks: List[StrictStr] = Field(description="Networks approved for this address. Each value is either a Fireblocks network ID (when the provider's network maps to a Fireblocks-supported blockchain) or the raw provider blockchain identifier (when no mapping exists). Treat values as opaque strings. Possible combinations: - One or more specific network values (e.g., `[\"ETHEREUM\", \"POLYGON\"]`) See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. ")
+ label: Optional[StrictStr] = Field(default=None, description="Human-readable label for the address")
+ address_identifier: Optional[StrictStr] = Field(default=None, description="Additional identifier (e.g., memo, destination tag)", alias="addressIdentifier")
+ status: AllowlistEntryStatus
+ added_at: datetime = Field(description="ISO 8601 timestamp when entry was added", alias="addedAt")
+ provider_reference_id: Optional[StrictStr] = Field(default=None, description="Provider's internal reference ID", alias="providerReferenceId")
+ provider_metadata: Optional[Dict[str, Any]] = Field(default=None, description="Provider-specific pass-through data for this address. Treat as an opaque blob: the shape, set of keys, and value types vary by provider, by entry, and over time. Keys may be added, renamed, or removed without notice as providers evolve their integrations or as new providers are added. The example below illustrates one possible shape and is not a contract — do not program against specific keys. ", alias="providerMetadata")
+ __properties: ClassVar[List[str]] = ["id", "address", "assets", "networks", "label", "addressIdentifier", "status", "addedAt", "providerReferenceId", "providerMetadata"]
+
+ 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 AllowlistEntry 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,
+ )
+ # set to None if label (nullable) is None
+ # and model_fields_set contains the field
+ if self.label is None and "label" in self.model_fields_set:
+ _dict['label'] = None
+
+ # set to None if address_identifier (nullable) is None
+ # and model_fields_set contains the field
+ if self.address_identifier is None and "address_identifier" in self.model_fields_set:
+ _dict['addressIdentifier'] = None
+
+ # set to None if provider_reference_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.provider_reference_id is None and "provider_reference_id" in self.model_fields_set:
+ _dict['providerReferenceId'] = None
+
+ # set to None if provider_metadata (nullable) is None
+ # and model_fields_set contains the field
+ if self.provider_metadata is None and "provider_metadata" in self.model_fields_set:
+ _dict['providerMetadata'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AllowlistEntry 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"),
+ "address": obj.get("address"),
+ "assets": obj.get("assets"),
+ "networks": obj.get("networks"),
+ "label": obj.get("label"),
+ "addressIdentifier": obj.get("addressIdentifier"),
+ "status": obj.get("status"),
+ "addedAt": obj.get("addedAt"),
+ "providerReferenceId": obj.get("providerReferenceId"),
+ "providerMetadata": obj.get("providerMetadata")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/allowlist_entry_status.py b/fireblocks/models/allowlist_entry_status.py
new file mode 100644
index 00000000..1cab175e
--- /dev/null
+++ b/fireblocks/models/allowlist_entry_status.py
@@ -0,0 +1,42 @@
+# 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 AllowlistEntryStatus(str, Enum):
+ """
+ Current status of the allowlist entry. - `ACTIVE` — Entry is approved and usable. - `PENDING_PROVIDER_COOLDOWN` — Entry was recently added or modified and is in the provider-enforced cooldown window before becoming active. - `PENDING_PROVIDER_REVIEW` — Entry is awaiting provider-side review. - `PENDING_APPROVAL` — Entry is awaiting customer/admin approval on the Fireblocks side. - `REJECTED` — Entry was rejected at submission time and will not become active. - `REMOVED` — Entry was deactivated after previously being active. May still appear in results for audit purposes.
+ """
+
+ """
+ allowed enum values
+ """
+ ACTIVE = 'ACTIVE'
+ PENDING_PROVIDER_COOLDOWN = 'PENDING_PROVIDER_COOLDOWN'
+ PENDING_PROVIDER_REVIEW = 'PENDING_PROVIDER_REVIEW'
+ PENDING_APPROVAL = 'PENDING_APPROVAL'
+ REJECTED = 'REJECTED'
+ REMOVED = 'REMOVED'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AllowlistEntryStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/allowlist_metadata.py b/fireblocks/models/allowlist_metadata.py
new file mode 100644
index 00000000..15c74f1a
--- /dev/null
+++ b/fireblocks/models/allowlist_metadata.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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AllowlistMetadata(BaseModel):
+ """
+ Allowlist-specific metadata
+ """ # noqa: E501
+ last_synced_at: Optional[datetime] = Field(default=None, description="ISO 8601 timestamp of last sync with provider", alias="lastSyncedAt")
+ sync_status: Optional[StrictStr] = Field(default=None, description="Status of last sync operation", alias="syncStatus")
+ __properties: ClassVar[List[str]] = ["lastSyncedAt", "syncStatus"]
+
+ @field_validator('sync_status')
+ def sync_status_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['SUCCESS', 'FAILED', 'IN_PROGRESS', 'NEVER_SYNCED']):
+ raise ValueError("must be one of enum values ('SUCCESS', 'FAILED', 'IN_PROGRESS', 'NEVER_SYNCED')")
+ 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 AllowlistMetadata 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 AllowlistMetadata from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "lastSyncedAt": obj.get("lastSyncedAt"),
+ "syncStatus": obj.get("syncStatus")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/allowlist_response.py b/fireblocks/models/allowlist_response.py
new file mode 100644
index 00000000..b0ef275d
--- /dev/null
+++ b/fireblocks/models/allowlist_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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.allowlist_entry import AllowlistEntry
+from fireblocks.models.allowlist_metadata import AllowlistMetadata
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AllowlistResponse(BaseModel):
+ """
+ AllowlistResponse
+ """ # noqa: E501
+ data: List[AllowlistEntry] = Field(description="Array of allowlist entries")
+ metadata: Optional[AllowlistMetadata] = None
+ total: StrictInt = Field(description="Total number of allowlist entries")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for the next page of results, if available")
+ __properties: ClassVar[List[str]] = ["data", "metadata", "total", "next"]
+
+ 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 AllowlistResponse 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # override the default output from pydantic by calling `to_dict()` of metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AllowlistResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [AllowlistEntry.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "metadata": AllowlistMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "total": obj.get("total"),
+ "next": obj.get("next")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/balance_history_paged_response2.py b/fireblocks/models/balance_history_paged_response2.py
new file mode 100644
index 00000000..3a95f37c
--- /dev/null
+++ b/fireblocks/models/balance_history_paged_response2.py
@@ -0,0 +1,102 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class BalanceHistoryPagedResponse2(BaseModel):
+ """
+ BalanceHistoryPagedResponse2
+ """ # noqa: E501
+ data: List[BalanceHistoryItemDto] = Field(description="Array of balance history data points")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for next page")
+ prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page")
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items")
+ __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"]
+
+ 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 BalanceHistoryPagedResponse2 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of BalanceHistoryPagedResponse2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [BalanceHistoryItemDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next"),
+ "prev": obj.get("prev"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/business_identification.py b/fireblocks/models/business_identification.py
index ec1ffd08..ba471968 100644
--- a/fireblocks/models/business_identification.py
+++ b/fireblocks/models/business_identification.py
@@ -18,6 +18,7 @@
import re # noqa: F401
import json
+from datetime import date
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
@@ -39,7 +40,9 @@ class BusinessIdentification(BaseModel):
postal_address: PostalAddress = Field(alias="postalAddress")
email: Optional[StrictStr] = None
phone: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Mobile phone number in E.164 format")
- __properties: ClassVar[List[str]] = ["externalReferenceId", "entityType", "participantRelationshipType", "businessName", "registrationNumber", "postalAddress", "email", "phone"]
+ date_of_registration: Optional[date] = Field(default=None, description="The date the business was registered.", alias="dateOfRegistration")
+ country_of_registration: Optional[StrictStr] = Field(default=None, description="The ISO-3166 Alpha-2 country code where the business is registered.", alias="countryOfRegistration")
+ __properties: ClassVar[List[str]] = ["externalReferenceId", "entityType", "participantRelationshipType", "businessName", "registrationNumber", "postalAddress", "email", "phone", "dateOfRegistration", "countryOfRegistration"]
@field_validator('phone')
def phone_validate_regular_expression(cls, value):
@@ -112,7 +115,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"registrationNumber": obj.get("registrationNumber"),
"postalAddress": PostalAddress.from_dict(obj["postalAddress"]) if obj.get("postalAddress") is not None else None,
"email": obj.get("email"),
- "phone": obj.get("phone")
+ "phone": obj.get("phone"),
+ "dateOfRegistration": obj.get("dateOfRegistration"),
+ "countryOfRegistration": obj.get("countryOfRegistration")
})
return _obj
diff --git a/fireblocks/models/connected_account.py b/fireblocks/models/connected_account.py
index 9191ff8e..a20bbb6c 100644
--- a/fireblocks/models/connected_account.py
+++ b/fireblocks/models/connected_account.py
@@ -23,6 +23,7 @@
from fireblocks.models.connected_account_approval_status import ConnectedAccountApprovalStatus
from fireblocks.models.connected_account_manifest import ConnectedAccountManifest
from fireblocks.models.connected_account_total_balance import ConnectedAccountTotalBalance
+from fireblocks.models.connected_account_type import ConnectedAccountType
from typing import Optional, Set
from typing_extensions import Self
@@ -37,7 +38,10 @@ class ConnectedAccount(BaseModel):
total_balance: ConnectedAccountTotalBalance = Field(alias="totalBalance")
manifest: ConnectedAccountManifest
parent_id: Optional[StrictStr] = Field(default=None, description="The ID of the parent main account, if this is a sub account.", alias="parentId")
- __properties: ClassVar[List[str]] = ["id", "name", "providerId", "status", "totalBalance", "manifest", "parentId"]
+ api_key: Optional[StrictStr] = Field(default=None, description="The API key identifier used to connect this account.", alias="apiKey")
+ provider_account_name: Optional[StrictStr] = Field(default=None, description="The account name provided by the provider.", alias="providerAccountName")
+ account_type: ConnectedAccountType = Field(alias="accountType")
+ __properties: ClassVar[List[str]] = ["id", "name", "providerId", "status", "totalBalance", "manifest", "parentId", "apiKey", "providerAccountName", "accountType"]
model_config = ConfigDict(
populate_by_name=True,
@@ -102,7 +106,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"status": obj.get("status"),
"totalBalance": ConnectedAccountTotalBalance.from_dict(obj["totalBalance"]) if obj.get("totalBalance") is not None else None,
"manifest": ConnectedAccountManifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
- "parentId": obj.get("parentId")
+ "parentId": obj.get("parentId"),
+ "apiKey": obj.get("apiKey"),
+ "providerAccountName": obj.get("providerAccountName"),
+ "accountType": obj.get("accountType")
})
return _obj
diff --git a/fireblocks/models/connected_account_type.py b/fireblocks/models/connected_account_type.py
new file mode 100644
index 00000000..0f27a239
--- /dev/null
+++ b/fireblocks/models/connected_account_type.py
@@ -0,0 +1,39 @@
+# 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 ConnectedAccountType(str, Enum):
+ """
+ ConnectedAccountType
+ """
+
+ """
+ allowed enum values
+ """
+ EXCHANGE = 'EXCHANGE'
+ FIAT = 'FIAT'
+ CONNECTED_ACCOUNT = 'CONNECTED_ACCOUNT'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ConnectedAccountType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/connected_single_account_response.py b/fireblocks/models/connected_single_account_response.py
index dc35dca6..b6d6faab 100644
--- a/fireblocks/models/connected_single_account_response.py
+++ b/fireblocks/models/connected_single_account_response.py
@@ -23,6 +23,7 @@
from fireblocks.models.connected_account_approval_status import ConnectedAccountApprovalStatus
from fireblocks.models.connected_account_manifest import ConnectedAccountManifest
from fireblocks.models.connected_account_total_balance import ConnectedAccountTotalBalance
+from fireblocks.models.connected_account_type import ConnectedAccountType
from typing import Optional, Set
from typing_extensions import Self
@@ -37,8 +38,11 @@ class ConnectedSingleAccountResponse(BaseModel):
total_balance: ConnectedAccountTotalBalance = Field(alias="totalBalance")
manifest: ConnectedAccountManifest
parent_id: Optional[StrictStr] = Field(default=None, description="The ID of the parent main account, if this is a sub account.", alias="parentId")
+ api_key: Optional[StrictStr] = Field(default=None, description="The API key identifier used to connect this account.", alias="apiKey")
+ provider_account_name: Optional[StrictStr] = Field(default=None, description="The account name provided by the provider.", alias="providerAccountName")
+ account_type: ConnectedAccountType = Field(alias="accountType")
sub_accounts_ids: Optional[List[StrictStr]] = Field(default=None, description="IDs of sub-accounts associated with this connected account.", alias="subAccountsIds")
- __properties: ClassVar[List[str]] = ["id", "name", "providerId", "status", "totalBalance", "manifest", "parentId", "subAccountsIds"]
+ __properties: ClassVar[List[str]] = ["id", "name", "providerId", "status", "totalBalance", "manifest", "parentId", "apiKey", "providerAccountName", "accountType", "subAccountsIds"]
model_config = ConfigDict(
populate_by_name=True,
@@ -104,6 +108,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"totalBalance": ConnectedAccountTotalBalance.from_dict(obj["totalBalance"]) if obj.get("totalBalance") is not None else None,
"manifest": ConnectedAccountManifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
"parentId": obj.get("parentId"),
+ "apiKey": obj.get("apiKey"),
+ "providerAccountName": obj.get("providerAccountName"),
+ "accountType": obj.get("accountType"),
"subAccountsIds": obj.get("subAccountsIds")
})
return _obj
diff --git a/fireblocks/models/create_webhook_request.py b/fireblocks/models/create_webhook_request.py
index be6964f1..97f09c93 100644
--- a/fireblocks/models/create_webhook_request.py
+++ b/fireblocks/models/create_webhook_request.py
@@ -22,6 +22,7 @@
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from fireblocks.models.webhook_event import WebhookEvent
+from fireblocks.models.webhook_mtls import WebhookMtls
from typing import Optional, Set
from typing_extensions import Self
@@ -33,7 +34,8 @@ class CreateWebhookRequest(BaseModel):
description: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="description of the webhook. should not contain special characters.")
events: List[WebhookEvent] = Field(description="event types the webhook will subscribe to")
enabled: Optional[StrictBool] = Field(default=True, description="The status of the webhook. If false, the webhook will not receive notifications.")
- __properties: ClassVar[List[str]] = ["url", "description", "events", "enabled"]
+ mtls: Optional[WebhookMtls] = None
+ __properties: ClassVar[List[str]] = ["url", "description", "events", "enabled", "mtls"]
model_config = ConfigDict(
populate_by_name=True,
@@ -74,6 +76,14 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of mtls
+ if self.mtls:
+ _dict['mtls'] = self.mtls.to_dict()
+ # set to None if mtls (nullable) is None
+ # and model_fields_set contains the field
+ if self.mtls is None and "mtls" in self.model_fields_set:
+ _dict['mtls'] = None
+
return _dict
@classmethod
@@ -89,7 +99,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"url": obj.get("url"),
"description": obj.get("description"),
"events": obj.get("events"),
- "enabled": obj.get("enabled") if obj.get("enabled") is not None else True
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True,
+ "mtls": WebhookMtls.from_dict(obj["mtls"]) if obj.get("mtls") is not None else None
})
return _obj
diff --git a/fireblocks/models/onchain_transactions_paged_response2.py b/fireblocks/models/onchain_transactions_paged_response2.py
new file mode 100644
index 00000000..4f4a31f5
--- /dev/null
+++ b/fireblocks/models/onchain_transactions_paged_response2.py
@@ -0,0 +1,102 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.onchain_transaction import OnchainTransaction
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OnchainTransactionsPagedResponse2(BaseModel):
+ """
+ OnchainTransactionsPagedResponse2
+ """ # noqa: E501
+ data: List[OnchainTransaction] = Field(description="Array of onchain transactions")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for next page")
+ prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page")
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items")
+ __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"]
+
+ 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 OnchainTransactionsPagedResponse2 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of OnchainTransactionsPagedResponse2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [OnchainTransaction.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next"),
+ "prev": obj.get("prev"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/onchain_transfer_event.py b/fireblocks/models/onchain_transfer_event.py
new file mode 100644
index 00000000..596c025f
--- /dev/null
+++ b/fireblocks/models/onchain_transfer_event.py
@@ -0,0 +1,113 @@
+# 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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OnchainTransferEvent(BaseModel):
+ """
+ OnchainTransferEvent
+ """ # noqa: E501
+ id: StrictStr = Field(description="Unique identifier for the transfer event")
+ transaction_hash: StrictStr = Field(description="Hash of the transaction containing this transfer", alias="transactionHash")
+ log_index: StrictStr = Field(description="Index of the log within the transaction", alias="logIndex")
+ contract_address: StrictStr = Field(description="Address of the token contract", alias="contractAddress")
+ from_address: StrictStr = Field(description="Address that sent the tokens", alias="fromAddress")
+ to_address: StrictStr = Field(description="Address that received the tokens", alias="toAddress")
+ value: StrictStr = Field(description="Amount of tokens transferred (in smallest unit)")
+ chain_id: StrictInt = Field(description="Chain ID of the blockchain", alias="chainId")
+ base_asset_id: StrictStr = Field(description="The blockchain base asset identifier", alias="baseAssetId")
+ block_number: StrictInt = Field(description="Block number containing this transfer", alias="blockNumber")
+ block_hash: StrictStr = Field(description="Hash of the block containing this transfer", alias="blockHash")
+ block_timestamp: datetime = Field(description="Timestamp when the block was mined", alias="blockTimestamp")
+ event_name: StrictStr = Field(description="Name of the event (typically \"Transfer\")", alias="eventName")
+ __properties: ClassVar[List[str]] = ["id", "transactionHash", "logIndex", "contractAddress", "fromAddress", "toAddress", "value", "chainId", "baseAssetId", "blockNumber", "blockHash", "blockTimestamp", "eventName"]
+
+ 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 OnchainTransferEvent 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 OnchainTransferEvent 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"),
+ "transactionHash": obj.get("transactionHash"),
+ "logIndex": obj.get("logIndex"),
+ "contractAddress": obj.get("contractAddress"),
+ "fromAddress": obj.get("fromAddress"),
+ "toAddress": obj.get("toAddress"),
+ "value": obj.get("value"),
+ "chainId": obj.get("chainId"),
+ "baseAssetId": obj.get("baseAssetId"),
+ "blockNumber": obj.get("blockNumber"),
+ "blockHash": obj.get("blockHash"),
+ "blockTimestamp": obj.get("blockTimestamp"),
+ "eventName": obj.get("eventName")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/onchain_transfers_paged_response.py b/fireblocks/models/onchain_transfers_paged_response.py
new file mode 100644
index 00000000..2be2b4f0
--- /dev/null
+++ b/fireblocks/models/onchain_transfers_paged_response.py
@@ -0,0 +1,102 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.onchain_transfer_event import OnchainTransferEvent
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OnchainTransfersPagedResponse(BaseModel):
+ """
+ OnchainTransfersPagedResponse
+ """ # noqa: E501
+ data: List[OnchainTransferEvent] = Field(description="Array of ERC20 transfer events")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for next page")
+ prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page")
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items")
+ __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"]
+
+ 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 OnchainTransfersPagedResponse 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of OnchainTransfersPagedResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [OnchainTransferEvent.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next"),
+ "prev": obj.get("prev"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/order_requirement_allowed_file_type.py b/fireblocks/models/order_requirement_allowed_file_type.py
new file mode 100644
index 00000000..d4697f43
--- /dev/null
+++ b/fireblocks/models/order_requirement_allowed_file_type.py
@@ -0,0 +1,46 @@
+# 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 OrderRequirementAllowedFileType(str, Enum):
+ """
+ Supported file formats for order requirement file uploads.
+ """
+
+ """
+ allowed enum values
+ """
+ PDF = 'PDF'
+ JPEG = 'JPEG'
+ PNG = 'PNG'
+ HEIC = 'HEIC'
+ HEIF = 'HEIF'
+ DOC = 'DOC'
+ DOCX = 'DOCX'
+ XLS = 'XLS'
+ XLSX = 'XLSX'
+ CSV = 'CSV'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of OrderRequirementAllowedFileType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/order_requirement_details.py b/fireblocks/models/order_requirement_details.py
new file mode 100644
index 00000000..5d3e1ae2
--- /dev/null
+++ b/fireblocks/models/order_requirement_details.py
@@ -0,0 +1,103 @@
+# 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.order_requirement_file import OrderRequirementFile
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OrderRequirementDetails(BaseModel):
+ """
+ Order requirement details for an order that is awaiting compliance requirements. Returned by GET /trading/orders/{orderId}/requirement.
+ """ # noqa: E501
+ requirement_id: StrictStr = Field(description="Unique identifier of the order requirement request as issued by the provider.", alias="requirementId")
+ due_by: Optional[datetime] = Field(default=None, description="ISO-8601 timestamp indicating when the order requirement submission is due.", alias="dueBy")
+ required_data: StrictStr = Field(description="A JSON Schema (Draft-7) in string format describing the shape of the `data` object expected on the corresponding POST /trading/orders/{orderId}/requirement/data request. The schema is the contract: the client builds the `data` payload to match it, and SDKs can validate before sending. The string content is expected to be valid JSON (application/json). ", alias="requiredData")
+ required_files: List[OrderRequirementFile] = Field(description="Descriptors for files the provider requires as part of the order requirement response. Empty when no files are required. Each entry's `fileKey` is used to correlate uploads on the corresponding upload request.", alias="requiredFiles")
+ __properties: ClassVar[List[str]] = ["requirementId", "dueBy", "requiredData", "requiredFiles"]
+
+ 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 OrderRequirementDetails 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 required_files (list)
+ _items = []
+ if self.required_files:
+ for _item_required_files in self.required_files:
+ if _item_required_files:
+ _items.append(_item_required_files.to_dict())
+ _dict['requiredFiles'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of OrderRequirementDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "requirementId": obj.get("requirementId"),
+ "dueBy": obj.get("dueBy"),
+ "requiredData": obj.get("requiredData"),
+ "requiredFiles": [OrderRequirementFile.from_dict(_item) for _item in obj["requiredFiles"]] if obj.get("requiredFiles") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/order_requirement_file.py b/fireblocks/models/order_requirement_file.py
new file mode 100644
index 00000000..4867edd3
--- /dev/null
+++ b/fireblocks/models/order_requirement_file.py
@@ -0,0 +1,93 @@
+# 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 fireblocks.models.order_requirement_allowed_file_type import OrderRequirementAllowedFileType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OrderRequirementFile(BaseModel):
+ """
+ A file the provider requires as part of the order requirement response.
+ """ # noqa: E501
+ file_key: StrictStr = Field(description="Stable identifier for this required file. Used to correlate uploads on submission.", alias="fileKey")
+ description: StrictStr = Field(description="Human-readable description of what the file should contain.")
+ allowed_file_types: List[OrderRequirementAllowedFileType] = Field(description="File formats the provider accepts for this entry.", alias="allowedFileTypes")
+ __properties: ClassVar[List[str]] = ["fileKey", "description", "allowedFileTypes"]
+
+ 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 OrderRequirementFile 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 OrderRequirementFile from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "fileKey": obj.get("fileKey"),
+ "description": obj.get("description"),
+ "allowedFileTypes": obj.get("allowedFileTypes")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/order_status.py b/fireblocks/models/order_status.py
index b188296e..f529f58e 100644
--- a/fireblocks/models/order_status.py
+++ b/fireblocks/models/order_status.py
@@ -29,6 +29,7 @@ class OrderStatus(str, Enum):
"""
CREATED = 'CREATED'
AWAITING_PAYMENT = 'AWAITING_PAYMENT'
+ AWAITING_INFORMATION = 'AWAITING_INFORMATION'
PENDING_USER_ACTION = 'PENDING_USER_ACTION'
PROCESSING = 'PROCESSING'
CANCELED = 'CANCELED'
diff --git a/fireblocks/models/personal_identification.py b/fireblocks/models/personal_identification.py
index 7ebe1d83..8d2d531b 100644
--- a/fireblocks/models/personal_identification.py
+++ b/fireblocks/models/personal_identification.py
@@ -24,6 +24,7 @@
from typing_extensions import Annotated
from fireblocks.models.participant_relationship_type import ParticipantRelationshipType
from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum
+from fireblocks.models.personal_identification_document import PersonalIdentificationDocument
from fireblocks.models.personal_identification_full_name import PersonalIdentificationFullName
from fireblocks.models.personal_identification_type import PersonalIdentificationType
from fireblocks.models.postal_address import PostalAddress
@@ -42,11 +43,13 @@ class PersonalIdentification(BaseModel):
postal_address: PostalAddress = Field(alias="postalAddress")
email: Optional[StrictStr] = None
phone: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Mobile phone number in E.164 format")
- id_number: Optional[StrictStr] = Field(default=None, description="The identification number corresponding to the primary identification document type specified in idType", alias="idNumber")
- id_type: Optional[PersonalIdentificationType] = Field(default=None, alias="idType")
- additional_id_number: Optional[StrictStr] = Field(default=None, description="The identification number corresponding to the additional identification document type specified in additionalIdType", alias="additionalIdNumber")
- additional_id_type: Optional[PersonalIdentificationType] = Field(default=None, alias="additionalIdType")
- __properties: ClassVar[List[str]] = ["externalReferenceId", "entityType", "participantRelationshipType", "fullName", "dateOfBirth", "postalAddress", "email", "phone", "idNumber", "idType", "additionalIdNumber", "additionalIdType"]
+ id_number: Optional[StrictStr] = Field(default=None, description="Deprecated. Use identificationDocuments instead.", alias="idNumber")
+ id_type: Optional[PersonalIdentificationType] = Field(default=None, description="Deprecated. Use identificationDocuments instead.", alias="idType")
+ additional_id_number: Optional[StrictStr] = Field(default=None, description="Deprecated. Use identificationDocuments instead.", alias="additionalIdNumber")
+ additional_id_type: Optional[PersonalIdentificationType] = Field(default=None, description="Deprecated. Use identificationDocuments instead.", alias="additionalIdType")
+ nationality: Optional[StrictStr] = Field(default=None, description="The ISO-3166 Alpha-2 country code representing the individual's nationality.")
+ identification_documents: Optional[List[PersonalIdentificationDocument]] = Field(default=None, description="List of identification documents for the individual.", alias="identificationDocuments")
+ __properties: ClassVar[List[str]] = ["externalReferenceId", "entityType", "participantRelationshipType", "fullName", "dateOfBirth", "postalAddress", "email", "phone", "idNumber", "idType", "additionalIdNumber", "additionalIdType", "nationality", "identificationDocuments"]
@field_validator('phone')
def phone_validate_regular_expression(cls, value):
@@ -103,6 +106,13 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of postal_address
if self.postal_address:
_dict['postalAddress'] = self.postal_address.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in identification_documents (list)
+ _items = []
+ if self.identification_documents:
+ for _item_identification_documents in self.identification_documents:
+ if _item_identification_documents:
+ _items.append(_item_identification_documents.to_dict())
+ _dict['identificationDocuments'] = _items
return _dict
@classmethod
@@ -126,7 +136,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"idNumber": obj.get("idNumber"),
"idType": obj.get("idType"),
"additionalIdNumber": obj.get("additionalIdNumber"),
- "additionalIdType": obj.get("additionalIdType")
+ "additionalIdType": obj.get("additionalIdType"),
+ "nationality": obj.get("nationality"),
+ "identificationDocuments": [PersonalIdentificationDocument.from_dict(_item) for _item in obj["identificationDocuments"]] if obj.get("identificationDocuments") is not None else None
})
return _obj
diff --git a/fireblocks/models/personal_identification_document.py b/fireblocks/models/personal_identification_document.py
new file mode 100644
index 00000000..72669b45
--- /dev/null
+++ b/fireblocks/models/personal_identification_document.py
@@ -0,0 +1,94 @@
+# 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 date
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.personal_identification_type import PersonalIdentificationType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PersonalIdentificationDocument(BaseModel):
+ """
+ PersonalIdentificationDocument
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The identification document number.")
+ type: Optional[PersonalIdentificationType] = None
+ expiration_date: Optional[date] = Field(default=None, description="The expiration date of the identification document.", alias="expirationDate")
+ __properties: ClassVar[List[str]] = ["id", "type", "expirationDate"]
+
+ 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 PersonalIdentificationDocument 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 PersonalIdentificationDocument 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"),
+ "type": obj.get("type"),
+ "expirationDate": obj.get("expirationDate")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/position_related_transaction.py b/fireblocks/models/position_related_transaction.py
new file mode 100644
index 00000000..f87646a0
--- /dev/null
+++ b/fireblocks/models/position_related_transaction.py
@@ -0,0 +1,118 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PositionRelatedTransaction(BaseModel):
+ """
+ PositionRelatedTransaction
+ """ # noqa: E501
+ tx_id: StrictStr = Field(description="The transaction ID.", alias="txId")
+ tx_hash: Optional[StrictStr] = Field(default=None, description="On-chain transaction hash. Absent while the transaction is pending.", alias="txHash")
+ staking_operation: Optional[StrictStr] = Field(default=None, description="Staking operation type. One of APPROVE, STAKE, UNSTAKE, WITHDRAW, CLAIM_REWARDS, SPLIT, CONSOLIDATE, MERGE, TRANSFER, AUTHORIZE, ADD_TO_STAKE. Absent on legacy persisted rows.", alias="stakingOperation")
+ timestamp: datetime = Field(description="ISO timestamp when the transaction was initiated (send time).")
+ status: StrictStr = Field(description="Transaction outcome.")
+ amount: Optional[StrictStr] = Field(default=None, description="Portion of position amount this transaction moved (native units). Absent on legacy rows.")
+ tx_note: Optional[StrictStr] = Field(default=None, description="User-provided note from the transfer request. Omitted when not set.", alias="txNote")
+ __properties: ClassVar[List[str]] = ["txId", "txHash", "stakingOperation", "timestamp", "status", "amount", "txNote"]
+
+ @field_validator('staking_operation')
+ def staking_operation_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['APPROVE', 'STAKE', 'UNSTAKE', 'WITHDRAW', 'CLAIM_REWARDS', 'SPLIT', 'CONSOLIDATE', 'MERGE', 'TRANSFER', 'AUTHORIZE', 'ADD_TO_STAKE']):
+ raise ValueError("must be one of enum values ('APPROVE', 'STAKE', 'UNSTAKE', 'WITHDRAW', 'CLAIM_REWARDS', 'SPLIT', 'CONSOLIDATE', 'MERGE', 'TRANSFER', 'AUTHORIZE', 'ADD_TO_STAKE')")
+ return value
+
+ @field_validator('status')
+ def status_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['PENDING', 'COMPLETED', 'FAILED']):
+ raise ValueError("must be one of enum values ('PENDING', 'COMPLETED', 'FAILED')")
+ 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 PositionRelatedTransaction 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 PositionRelatedTransaction from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "txId": obj.get("txId"),
+ "txHash": obj.get("txHash"),
+ "stakingOperation": obj.get("stakingOperation"),
+ "timestamp": obj.get("timestamp"),
+ "status": obj.get("status"),
+ "amount": obj.get("amount"),
+ "txNote": obj.get("txNote")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/quote.py b/fireblocks/models/quote.py
index ca6c329b..a5943c8b 100644
--- a/fireblocks/models/quote.py
+++ b/fireblocks/models/quote.py
@@ -47,9 +47,9 @@ class Quote(BaseModel):
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 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")
+ required_participants_identification_on_order: 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="requiredParticipantsIdentificationOnOrder")
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"]
+ __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "quoteAssetRail", "baseAssetId", "baseAssetRail", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "isSlippageApplied", "executionSteps", "generalFees", "side", "expiresAt", "requiredParticipantsIdentificationOnOrder", "type"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -141,7 +141,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"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"),
+ "requiredParticipantsIdentificationOnOrder": obj.get("requiredParticipantsIdentificationOnOrder"),
"type": obj.get("type")
})
return _obj
diff --git a/fireblocks/models/quote_offer.py b/fireblocks/models/quote_offer.py
index c725b889..45aa9c61 100644
--- a/fireblocks/models/quote_offer.py
+++ b/fireblocks/models/quote_offer.py
@@ -47,10 +47,10 @@ class QuoteOffer(BaseModel):
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 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")
+ required_participants_identification_on_order: 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="requiredParticipantsIdentificationOnOrder")
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"]
+ __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "quoteAssetRail", "baseAssetId", "baseAssetRail", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "isSlippageApplied", "executionSteps", "generalFees", "side", "expiresAt", "requiredParticipantsIdentificationOnOrder", "type", "offerType"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -149,7 +149,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"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"),
+ "requiredParticipantsIdentificationOnOrder": obj.get("requiredParticipantsIdentificationOnOrder"),
"type": obj.get("type"),
"offerType": obj.get("offerType")
})
diff --git a/fireblocks/models/role_details2.py b/fireblocks/models/role_details2.py
new file mode 100644
index 00000000..1116bc41
--- /dev/null
+++ b/fireblocks/models/role_details2.py
@@ -0,0 +1,100 @@
+# 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 fireblocks.models.role_grantee import RoleGrantee
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RoleDetails2(BaseModel):
+ """
+ RoleDetails2
+ """ # noqa: E501
+ role_hash: StrictStr = Field(description="The role hash identifier", alias="roleHash")
+ description: StrictStr = Field(description="Human-readable description of the role")
+ accounts: List[RoleGrantee] = Field(description="List of accounts that have been granted this role")
+ __properties: ClassVar[List[str]] = ["roleHash", "description", "accounts"]
+
+ 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 RoleDetails2 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 accounts (list)
+ _items = []
+ if self.accounts:
+ for _item_accounts in self.accounts:
+ if _item_accounts:
+ _items.append(_item_accounts.to_dict())
+ _dict['accounts'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RoleDetails2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "roleHash": obj.get("roleHash"),
+ "description": obj.get("description"),
+ "accounts": [RoleGrantee.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_tr_link_missing_trm_decision.py b/fireblocks/models/screening_tr_link_missing_trm_decision.py
index 63f114f0..2662e770 100644
--- a/fireblocks/models/screening_tr_link_missing_trm_decision.py
+++ b/fireblocks/models/screening_tr_link_missing_trm_decision.py
@@ -25,7 +25,7 @@
from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
-from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -36,10 +36,10 @@ class ScreeningTRLinkMissingTrmDecision(BaseModel):
""" # noqa: E501
customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId")
direction: Optional[TravelRuleDirectionEnum] = None
- source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="sourceType")
source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
- dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="destType")
dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
diff --git a/fireblocks/models/screening_tr_link_missing_trm_rule.py b/fireblocks/models/screening_tr_link_missing_trm_rule.py
index 81428458..a7ba9cc9 100644
--- a/fireblocks/models/screening_tr_link_missing_trm_rule.py
+++ b/fireblocks/models/screening_tr_link_missing_trm_rule.py
@@ -24,7 +24,7 @@
from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
-from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -35,10 +35,10 @@ class ScreeningTRLinkMissingTrmRule(BaseModel):
""" # noqa: E501
customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId")
direction: Optional[TravelRuleDirectionEnum] = None
- source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="sourceType")
source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
- dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="destType")
dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
diff --git a/fireblocks/models/screening_tr_link_post_screening_rule.py b/fireblocks/models/screening_tr_link_post_screening_rule.py
index 9aabb5c1..91f50461 100644
--- a/fireblocks/models/screening_tr_link_post_screening_rule.py
+++ b/fireblocks/models/screening_tr_link_post_screening_rule.py
@@ -25,7 +25,7 @@
from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum
from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
-from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -36,10 +36,10 @@ class ScreeningTRLinkPostScreeningRule(BaseModel):
""" # noqa: E501
customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId")
direction: Optional[TravelRuleDirectionEnum] = None
- source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="sourceType")
source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
- dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="destType")
dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
diff --git a/fireblocks/models/screening_tr_link_prescreening_rule.py b/fireblocks/models/screening_tr_link_prescreening_rule.py
index 2828edd1..1e218aa9 100644
--- a/fireblocks/models/screening_tr_link_prescreening_rule.py
+++ b/fireblocks/models/screening_tr_link_prescreening_rule.py
@@ -24,7 +24,7 @@
from fireblocks.models.tr_link_pre_screening_action_enum import TRLinkPreScreeningActionEnum
from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
-from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -35,10 +35,10 @@ class ScreeningTRLinkPrescreeningRule(BaseModel):
""" # noqa: E501
customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId")
direction: Optional[TravelRuleDirectionEnum] = None
- source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="sourceType")
source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
- dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="destType")
dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
diff --git a/fireblocks/models/screening_tr_link_rule_base.py b/fireblocks/models/screening_tr_link_rule_base.py
index bc5b6025..eb3ed130 100644
--- a/fireblocks/models/screening_tr_link_rule_base.py
+++ b/fireblocks/models/screening_tr_link_rule_base.py
@@ -23,7 +23,7 @@
from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
-from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -34,10 +34,10 @@ class ScreeningTRLinkRuleBase(BaseModel):
""" # noqa: E501
customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId")
direction: Optional[TravelRuleDirectionEnum] = None
- source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="sourceType")
source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
- dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="destType")
dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
diff --git a/fireblocks/models/screening_travel_rule_prescreening_rule.py b/fireblocks/models/screening_travel_rule_prescreening_rule.py
index b1814154..78800bfa 100644
--- a/fireblocks/models/screening_travel_rule_prescreening_rule.py
+++ b/fireblocks/models/screening_travel_rule_prescreening_rule.py
@@ -22,7 +22,7 @@
from typing import Any, ClassVar, Dict, List, Optional, Union
from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
-from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.transfer_peer_type_enum2 import TransferPeerTypeEnum2
from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -32,11 +32,11 @@ class ScreeningTravelRulePrescreeningRule(BaseModel):
Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
""" # noqa: E501
bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypass if prescreening rule triggered a bypass", alias="bypassReason")
- source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="sourceType")
source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
- dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="destType")
dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
- transfer_peer_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="transferPeerType")
+ transfer_peer_type: Optional[TransferPeerTypeEnum2] = Field(default=None, alias="transferPeerType")
transfer_peer_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="transferPeerSubType")
dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
diff --git a/fireblocks/models/staking_position_related_transactions_paginated_response.py b/fireblocks/models/staking_position_related_transactions_paginated_response.py
new file mode 100644
index 00000000..00a9824b
--- /dev/null
+++ b/fireblocks/models/staking_position_related_transactions_paginated_response.py
@@ -0,0 +1,103 @@
+# 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, Optional
+from fireblocks.models.position_related_transaction import PositionRelatedTransaction
+from typing import Optional, Set
+from typing_extensions import Self
+
+class StakingPositionRelatedTransactionsPaginatedResponse(BaseModel):
+ """
+ StakingPositionRelatedTransactionsPaginatedResponse
+ """ # noqa: E501
+ data: List[PositionRelatedTransaction] = Field(description="The related transactions for the current page.")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for the next page. Use this value in the pageCursor parameter to fetch the next page. Null if no more pages.")
+ __properties: ClassVar[List[str]] = ["data", "next"]
+
+ 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 StakingPositionRelatedTransactionsPaginatedResponse 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # set to None if next (nullable) is None
+ # and model_fields_set contains the field
+ if self.next is None and "next" in self.model_fields_set:
+ _dict['next'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of StakingPositionRelatedTransactionsPaginatedResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [PositionRelatedTransaction.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/submit_order_requirement_request.py b/fireblocks/models/submit_order_requirement_request.py
new file mode 100644
index 00000000..34d471bc
--- /dev/null
+++ b/fireblocks/models/submit_order_requirement_request.py
@@ -0,0 +1,88 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SubmitOrderRequirementRequest(BaseModel):
+ """
+ Body of POST /trading/orders/{orderId}/requirement/data. Carries the textual response (`data`). Any required files are uploaded separately via POST /trading/orders/{orderId}/requirement/file.
+ """ # noqa: E501
+ data: Dict[str, Any] = Field(description="Free-form object that MUST conform to the `requiredData` JSON Schema returned by the GET endpoint. Carries text/select fields.")
+ __properties: ClassVar[List[str]] = ["data"]
+
+ 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 SubmitOrderRequirementRequest 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 SubmitOrderRequirementRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": obj.get("data")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/total_supply_paged_response2.py b/fireblocks/models/total_supply_paged_response2.py
new file mode 100644
index 00000000..98409a85
--- /dev/null
+++ b/fireblocks/models/total_supply_paged_response2.py
@@ -0,0 +1,102 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TotalSupplyPagedResponse2(BaseModel):
+ """
+ TotalSupplyPagedResponse2
+ """ # noqa: E501
+ data: List[TotalSupplyItemDto] = Field(description="Array of total supply data points")
+ next: Optional[StrictStr] = Field(default=None, description="Cursor for next page")
+ prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page")
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items")
+ __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"]
+
+ 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 TotalSupplyPagedResponse2 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TotalSupplyPagedResponse2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [TotalSupplyItemDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next"),
+ "prev": obj.get("prev"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/transaction_configurations.py b/fireblocks/models/transaction_configurations.py
new file mode 100644
index 00000000..bd9a6dc1
--- /dev/null
+++ b/fireblocks/models/transaction_configurations.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, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TransactionConfigurations(BaseModel):
+ """
+ TransactionConfigurations
+ """ # noqa: E501
+ expires_after_seconds: Optional[Union[Annotated[float, Field(le=86400, strict=True, ge=300)], Annotated[int, Field(le=86400, strict=True, ge=300)]]] = Field(default=None, description="The number of seconds the transaction is valid for before it expires. After the specified duration, the transaction will expire if it has not been broadcasted.", alias="expiresAfterSeconds")
+ __properties: ClassVar[List[str]] = ["expiresAfterSeconds"]
+
+ 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 TransactionConfigurations 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 TransactionConfigurations from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "expiresAfterSeconds": obj.get("expiresAfterSeconds")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/transaction_request.py b/fireblocks/models/transaction_request.py
index bd7c1d3c..69537dac 100644
--- a/fireblocks/models/transaction_request.py
+++ b/fireblocks/models/transaction_request.py
@@ -19,11 +19,11 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
-from typing import Any, ClassVar, Dict, List, Optional, Union
-from typing_extensions import Annotated
+from typing import Any, ClassVar, Dict, List, Optional
from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath
from fireblocks.models.extra_parameters import ExtraParameters
from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath
+from fireblocks.models.transaction_configurations import TransactionConfigurations
from fireblocks.models.transaction_operation import TransactionOperation
from fireblocks.models.transaction_request_amount import TransactionRequestAmount
from fireblocks.models.transaction_request_destination import TransactionRequestDestination
@@ -71,8 +71,8 @@ class TransactionRequest(BaseModel):
network_staking: Optional[TransactionRequestNetworkStaking] = Field(default=None, alias="networkStaking")
cpu_staking: Optional[TransactionRequestNetworkStaking] = Field(default=None, alias="cpuStaking")
use_gasless: Optional[StrictBool] = Field(default=None, description="- Override the default gasless configuration by sending true\\false", alias="useGasless")
- expires_after_seconds: Optional[Union[Annotated[float, Field(le=86400, strict=True, ge=600)], Annotated[int, Field(le=86400, strict=True, ge=600)]]] = Field(default=None, description="The number of seconds the transaction is valid for before it expires. After the specified duration, the transaction will expire if it has not been broadcasted.", alias="expiresAfterSeconds")
- __properties: ClassVar[List[str]] = ["operation", "note", "externalTxId", "assetId", "source", "destination", "destinations", "amount", "treatAsGrossAmount", "forceSweep", "feeLevel", "fee", "priorityFee", "failOnLowFee", "maxFee", "maxTotalFee", "gasLimit", "gasPrice", "networkFee", "replaceTxByHash", "extraParameters", "utxoSelectionParams", "customerRefId", "travelRuleMessage", "travelRuleMessageId", "autoStaking", "networkStaking", "cpuStaking", "useGasless", "expiresAfterSeconds"]
+ configurations: Optional[TransactionConfigurations] = None
+ __properties: ClassVar[List[str]] = ["operation", "note", "externalTxId", "assetId", "source", "destination", "destinations", "amount", "treatAsGrossAmount", "forceSweep", "feeLevel", "fee", "priorityFee", "failOnLowFee", "maxFee", "maxTotalFee", "gasLimit", "gasPrice", "networkFee", "replaceTxByHash", "extraParameters", "utxoSelectionParams", "customerRefId", "travelRuleMessage", "travelRuleMessageId", "autoStaking", "networkStaking", "cpuStaking", "useGasless", "configurations"]
@field_validator('fee_level')
def fee_level_validate_enum(cls, value):
@@ -169,6 +169,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of cpu_staking
if self.cpu_staking:
_dict['cpuStaking'] = self.cpu_staking.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of configurations
+ if self.configurations:
+ _dict['configurations'] = self.configurations.to_dict()
return _dict
@classmethod
@@ -210,7 +213,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"networkStaking": TransactionRequestNetworkStaking.from_dict(obj["networkStaking"]) if obj.get("networkStaking") is not None else None,
"cpuStaking": TransactionRequestNetworkStaking.from_dict(obj["cpuStaking"]) if obj.get("cpuStaking") is not None else None,
"useGasless": obj.get("useGasless"),
- "expiresAfterSeconds": obj.get("expiresAfterSeconds")
+ "configurations": TransactionConfigurations.from_dict(obj["configurations"]) if obj.get("configurations") is not None else None
})
return _obj
diff --git a/fireblocks/models/transfer_peer_path_type.py b/fireblocks/models/transfer_peer_path_type.py
index 51cf0393..8dbababe 100644
--- a/fireblocks/models/transfer_peer_path_type.py
+++ b/fireblocks/models/transfer_peer_path_type.py
@@ -43,6 +43,7 @@ class TransferPeerPathType(str, Enum):
PROGRAM_CALL = 'PROGRAM_CALL'
MULTI_DESTINATION = 'MULTI_DESTINATION'
OEC_PARTNER = 'OEC_PARTNER'
+ WALLET_POOL = 'WALLET_POOL'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/transfer_peer_type_enum.py b/fireblocks/models/transfer_peer_type_enum.py
index f0a44c8e..384e1fbf 100644
--- a/fireblocks/models/transfer_peer_type_enum.py
+++ b/fireblocks/models/transfer_peer_type_enum.py
@@ -41,6 +41,7 @@ class TransferPeerTypeEnum(str, Enum):
END_USER_WALLET = 'END_USER_WALLET'
PROGRAM_CALL = 'PROGRAM_CALL'
MULTI_DESTINATION = 'MULTI_DESTINATION'
+ WALLET_POOL = 'WALLET_POOL'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/transfer_peer_type_enum2.py b/fireblocks/models/transfer_peer_type_enum2.py
new file mode 100644
index 00000000..6d23cf1f
--- /dev/null
+++ b/fireblocks/models/transfer_peer_type_enum2.py
@@ -0,0 +1,50 @@
+# 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 TransferPeerTypeEnum2(str, Enum):
+ """
+ Transfer peer type (source or destination)
+ """
+
+ """
+ allowed enum values
+ """
+ VAULT_ACCOUNT = 'VAULT_ACCOUNT'
+ EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT'
+ INTERNAL_WALLET = 'INTERNAL_WALLET'
+ EXTERNAL_WALLET = 'EXTERNAL_WALLET'
+ CONTRACT = 'CONTRACT'
+ NETWORK_CONNECTION = 'NETWORK_CONNECTION'
+ FIAT_ACCOUNT = 'FIAT_ACCOUNT'
+ COMPOUND = 'COMPOUND'
+ GAS_STATION = 'GAS_STATION'
+ ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS'
+ UNKNOWN = 'UNKNOWN'
+ END_USER_WALLET = 'END_USER_WALLET'
+ PROGRAM_CALL = 'PROGRAM_CALL'
+ MULTI_DESTINATION = 'MULTI_DESTINATION'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TransferPeerTypeEnum2 from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/update_webhook_request.py b/fireblocks/models/update_webhook_request.py
index 9d4c79a2..59c02cf3 100644
--- a/fireblocks/models/update_webhook_request.py
+++ b/fireblocks/models/update_webhook_request.py
@@ -22,6 +22,7 @@
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from fireblocks.models.webhook_event import WebhookEvent
+from fireblocks.models.webhook_mtls import WebhookMtls
from typing import Optional, Set
from typing_extensions import Self
@@ -33,7 +34,8 @@ class UpdateWebhookRequest(BaseModel):
description: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="description of the webhook of what it is used for.should not contain special characters.")
events: Optional[List[WebhookEvent]] = Field(default=None, description="The events that the webhook will be subscribed to")
enabled: Optional[StrictBool] = Field(default=None, description="The status of the webhook")
- __properties: ClassVar[List[str]] = ["url", "description", "events", "enabled"]
+ mtls: Optional[WebhookMtls] = None
+ __properties: ClassVar[List[str]] = ["url", "description", "events", "enabled", "mtls"]
model_config = ConfigDict(
populate_by_name=True,
@@ -74,6 +76,14 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of mtls
+ if self.mtls:
+ _dict['mtls'] = self.mtls.to_dict()
+ # set to None if mtls (nullable) is None
+ # and model_fields_set contains the field
+ if self.mtls is None and "mtls" in self.model_fields_set:
+ _dict['mtls'] = None
+
return _dict
@classmethod
@@ -89,7 +99,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"url": obj.get("url"),
"description": obj.get("description"),
"events": obj.get("events"),
- "enabled": obj.get("enabled")
+ "enabled": obj.get("enabled"),
+ "mtls": WebhookMtls.from_dict(obj["mtls"]) if obj.get("mtls") is not None else None
})
return _obj
diff --git a/fireblocks/models/webhook.py b/fireblocks/models/webhook.py
index 39850ebc..8918b6b1 100644
--- a/fireblocks/models/webhook.py
+++ b/fireblocks/models/webhook.py
@@ -22,6 +22,7 @@
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from fireblocks.models.webhook_event import WebhookEvent
+from fireblocks.models.webhook_mtls import WebhookMtls
from typing import Optional, Set
from typing_extensions import Self
@@ -36,7 +37,8 @@ class Webhook(BaseModel):
status: StrictStr = Field(description="The status of the webhook")
created_at: StrictInt = Field(description="The date and time the webhook was created in milliseconds", alias="createdAt")
updated_at: StrictInt = Field(description="The date and time the webhook was last updated in milliseconds", alias="updatedAt")
- __properties: ClassVar[List[str]] = ["id", "url", "description", "events", "status", "createdAt", "updatedAt"]
+ mtls: Optional[WebhookMtls] = None
+ __properties: ClassVar[List[str]] = ["id", "url", "description", "events", "status", "createdAt", "updatedAt", "mtls"]
@field_validator('status')
def status_validate_enum(cls, value):
@@ -84,6 +86,14 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of mtls
+ if self.mtls:
+ _dict['mtls'] = self.mtls.to_dict()
+ # set to None if mtls (nullable) is None
+ # and model_fields_set contains the field
+ if self.mtls is None and "mtls" in self.model_fields_set:
+ _dict['mtls'] = None
+
return _dict
@classmethod
@@ -102,7 +112,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"events": obj.get("events"),
"status": obj.get("status"),
"createdAt": obj.get("createdAt"),
- "updatedAt": obj.get("updatedAt")
+ "updatedAt": obj.get("updatedAt"),
+ "mtls": WebhookMtls.from_dict(obj["mtls"]) if obj.get("mtls") is not None else None
})
return _obj
diff --git a/fireblocks/models/webhook_mtls.py b/fireblocks/models/webhook_mtls.py
new file mode 100644
index 00000000..c664d3e7
--- /dev/null
+++ b/fireblocks/models/webhook_mtls.py
@@ -0,0 +1,88 @@
+# 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 import Optional, Set
+from typing_extensions import Self
+
+class WebhookMtls(BaseModel):
+ """
+ mTLS configuration for the webhook. On responses, present only when a signed client certificate is set. On requests, provide a signed client certificate to enable mTLS, or null to remove it.
+ """ # noqa: E501
+ client_signed_cert: StrictStr = Field(description="Signed client certificate PEM used for mTLS when delivering notifications.", alias="clientSignedCert")
+ __properties: ClassVar[List[str]] = ["clientSignedCert"]
+
+ 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 WebhookMtls 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 WebhookMtls from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "clientSignedCert": obj.get("clientSignedCert")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/webhook_mtls_csr_response.py b/fireblocks/models/webhook_mtls_csr_response.py
new file mode 100644
index 00000000..c7e78f4b
--- /dev/null
+++ b/fireblocks/models/webhook_mtls_csr_response.py
@@ -0,0 +1,88 @@
+# 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 import Optional, Set
+from typing_extensions import Self
+
+class WebhookMtlsCsrResponse(BaseModel):
+ """
+ mTLS Certificate Signing Request response
+ """ # noqa: E501
+ csr: StrictStr = Field(description="The Fireblocks PEM-encoded Certificate Signing Request (CSR).")
+ __properties: ClassVar[List[str]] = ["csr"]
+
+ 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 WebhookMtlsCsrResponse 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 WebhookMtlsCsrResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "csr": obj.get("csr")
+ })
+ return _obj
+
+
diff --git a/pyproject.toml b/pyproject.toml
index 0334de71..08a27f53 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fireblocks"
-version = "20.0.0"
+version = "0.0.0"
description = "Fireblocks API"
authors = ["Fireblocks "]
license = "MIT License"
diff --git a/setup.py b/setup.py
index b44755e8..8e55f57b 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "fireblocks"
-VERSION = "20.0.0"
+VERSION = "0.0.0"
PYTHON_REQUIRES = ">= 3.8"
REQUIRES = [
"urllib3 >= 2.1.0, < 3.0.0",
diff --git a/test/test_access_registry_current_state_response.py b/test/test_access_registry_current_state_response.py
index 36064dd4..e92e35b3 100644
--- a/test/test_access_registry_current_state_response.py
+++ b/test/test_access_registry_current_state_response.py
@@ -39,22 +39,14 @@ def make_instance(self, include_optional) -> AccessRegistryCurrentStateResponse:
model = AccessRegistryCurrentStateResponse()
if include_optional:
return AccessRegistryCurrentStateResponse(
- data = [
- fireblocks.models.access_registry_address_item.AccessRegistryAddressItem(
- address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
- date_added = '2024-07-01T00:00Z', )
- ],
+ data = [{"address":"0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66","dateAdded":"2024-07-01T00:00:00.000Z"}],
next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1bcnNvcg==',
total = 150
)
else:
return AccessRegistryCurrentStateResponse(
- data = [
- fireblocks.models.access_registry_address_item.AccessRegistryAddressItem(
- address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
- date_added = '2024-07-01T00:00Z', )
- ],
+ data = [{"address":"0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66","dateAdded":"2024-07-01T00:00:00.000Z"}],
)
"""
diff --git a/test/test_access_registry_current_state_response2.py b/test/test_access_registry_current_state_response2.py
new file mode 100644
index 00000000..bde8f034
--- /dev/null
+++ b/test/test_access_registry_current_state_response2.py
@@ -0,0 +1,68 @@
+# 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.access_registry_current_state_response2 import (
+ AccessRegistryCurrentStateResponse2,
+)
+
+
+class TestAccessRegistryCurrentStateResponse2(unittest.TestCase):
+ """AccessRegistryCurrentStateResponse2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AccessRegistryCurrentStateResponse2:
+ """Test AccessRegistryCurrentStateResponse2
+ 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 `AccessRegistryCurrentStateResponse2`
+ """
+ model = AccessRegistryCurrentStateResponse2()
+ if include_optional:
+ return AccessRegistryCurrentStateResponse2(
+ data = [
+ fireblocks.models.access_registry_address_item.AccessRegistryAddressItem(
+ address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
+ date_added = '2024-07-01T00:00Z', )
+ ],
+ next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
+ prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1bcnNvcg==',
+ total = 150
+ )
+ else:
+ return AccessRegistryCurrentStateResponse2(
+ data = [
+ fireblocks.models.access_registry_address_item.AccessRegistryAddressItem(
+ address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
+ date_added = '2024-07-01T00:00Z', )
+ ],
+ )
+ """
+
+ def testAccessRegistryCurrentStateResponse2(self):
+ """Test AccessRegistryCurrentStateResponse2"""
+ # 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_active_roles_response.py b/test/test_active_roles_response.py
new file mode 100644
index 00000000..1662b539
--- /dev/null
+++ b/test/test_active_roles_response.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.active_roles_response import ActiveRolesResponse
+
+
+class TestActiveRolesResponse(unittest.TestCase):
+ """ActiveRolesResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ActiveRolesResponse:
+ """Test ActiveRolesResponse
+ 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 `ActiveRolesResponse`
+ """
+ model = ActiveRolesResponse()
+ if include_optional:
+ return ActiveRolesResponse(
+ active_roles = {"DEFAULT_ADMIN_ROLE":{"roleHash":"0x0000000000000000000000000000000000000000000000000000000000000000","description":"DEFAULT_ADMIN_ROLE","accounts":[{"accountAddress":"0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66","dateOfGrant":"2024-07-01T00:00:00.000Z"}]}}
+ )
+ else:
+ return ActiveRolesResponse(
+ active_roles = {"DEFAULT_ADMIN_ROLE":{"roleHash":"0x0000000000000000000000000000000000000000000000000000000000000000","description":"DEFAULT_ADMIN_ROLE","accounts":[{"accountAddress":"0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66","dateOfGrant":"2024-07-01T00:00:00.000Z"}]}},
+ )
+ """
+
+ def testActiveRolesResponse(self):
+ """Test ActiveRolesResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_add_collateral_request_body.py b/test/test_add_collateral_request_body.py
index a79a1f09..e7be0d82 100644
--- a/test/test_add_collateral_request_body.py
+++ b/test/test_add_collateral_request_body.py
@@ -207,7 +207,8 @@ def make_instance(self, include_optional) -> AddCollateralRequestBody:
network_staking = null,
cpu_staking = null,
use_gasless = True,
- expires_after_seconds = 3600, ),
+ configurations = fireblocks.models.transaction_configurations.TransactionConfigurations(
+ expires_after_seconds = 3600, ), ),
is_src_collateral = True
)
else:
diff --git a/test/test_address_balance_paged_response.py b/test/test_address_balance_paged_response.py
index 3cb06516..d9a762ad 100644
--- a/test/test_address_balance_paged_response.py
+++ b/test/test_address_balance_paged_response.py
@@ -37,24 +37,14 @@ def make_instance(self, include_optional) -> AddressBalancePagedResponse:
model = AddressBalancePagedResponse()
if include_optional:
return AddressBalancePagedResponse(
- data = [
- fireblocks.models.address_balance_item_dto.AddressBalanceItemDto(
- account_address = '0x1234567890123456789012345678901234567890',
- balance = '1000000000000000000',
- last_updated = '2023-12-01T12:00Z', )
- ],
+ data = [{"accountAddress":"0x1234567890123456789012345678901234567890","balance":"1000000000000000000","lastUpdated":"2023-12-01T12:00:00.000Z"}],
next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
total = 150
)
else:
return AddressBalancePagedResponse(
- data = [
- fireblocks.models.address_balance_item_dto.AddressBalanceItemDto(
- account_address = '0x1234567890123456789012345678901234567890',
- balance = '1000000000000000000',
- last_updated = '2023-12-01T12:00Z', )
- ],
+ data = [{"accountAddress":"0x1234567890123456789012345678901234567890","balance":"1000000000000000000","lastUpdated":"2023-12-01T12:00:00.000Z"}],
)
"""
diff --git a/test/test_address_balance_paged_response2.py b/test/test_address_balance_paged_response2.py
new file mode 100644
index 00000000..c274aef0
--- /dev/null
+++ b/test/test_address_balance_paged_response2.py
@@ -0,0 +1,70 @@
+# 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_balance_paged_response2 import (
+ AddressBalancePagedResponse2,
+)
+
+
+class TestAddressBalancePagedResponse2(unittest.TestCase):
+ """AddressBalancePagedResponse2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AddressBalancePagedResponse2:
+ """Test AddressBalancePagedResponse2
+ 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 `AddressBalancePagedResponse2`
+ """
+ model = AddressBalancePagedResponse2()
+ if include_optional:
+ return AddressBalancePagedResponse2(
+ data = [
+ fireblocks.models.address_balance_item_dto.AddressBalanceItemDto(
+ account_address = '0x1234567890123456789012345678901234567890',
+ balance = '1000000000000000000',
+ last_updated = '2023-12-01T12:00Z', )
+ ],
+ next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
+ prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
+ total = 150
+ )
+ else:
+ return AddressBalancePagedResponse2(
+ data = [
+ fireblocks.models.address_balance_item_dto.AddressBalanceItemDto(
+ account_address = '0x1234567890123456789012345678901234567890',
+ balance = '1000000000000000000',
+ last_updated = '2023-12-01T12:00Z', )
+ ],
+ )
+ """
+
+ def testAddressBalancePagedResponse2(self):
+ """Test AddressBalancePagedResponse2"""
+ # 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_allowlist_entry.py b/test/test_allowlist_entry.py
new file mode 100644
index 00000000..3286f378
--- /dev/null
+++ b/test/test_allowlist_entry.py
@@ -0,0 +1,69 @@
+# 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.allowlist_entry import AllowlistEntry
+
+
+class TestAllowlistEntry(unittest.TestCase):
+ """AllowlistEntry unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AllowlistEntry:
+ """Test AllowlistEntry
+ 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 `AllowlistEntry`
+ """
+ model = AllowlistEntry()
+ if include_optional:
+ return AllowlistEntry(
+ id = '550e8400-e29b-41d4-a716-446655440000',
+ address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
+ assets = ["BTC","ETH"],
+ networks = ["ETHEREUM","POLYGON"],
+ label = 'Coinbase Hot Wallet',
+ address_identifier = '',
+ status = 'ACTIVE',
+ added_at = '2024-01-15T10:30Z',
+ provider_reference_id = 'CB-SAMPLE-001',
+ provider_metadata = {"coinbase_exchange_id":"1234567890"}
+ )
+ else:
+ return AllowlistEntry(
+ id = '550e8400-e29b-41d4-a716-446655440000',
+ address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
+ assets = ["BTC","ETH"],
+ networks = ["ETHEREUM","POLYGON"],
+ status = 'ACTIVE',
+ added_at = '2024-01-15T10:30Z',
+ )
+ """
+
+ def testAllowlistEntry(self):
+ """Test AllowlistEntry"""
+ # 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_allowlist_entry_status.py b/test/test_allowlist_entry_status.py
new file mode 100644
index 00000000..5eb39242
--- /dev/null
+++ b/test/test_allowlist_entry_status.py
@@ -0,0 +1,36 @@
+# 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.allowlist_entry_status import AllowlistEntryStatus
+
+
+class TestAllowlistEntryStatus(unittest.TestCase):
+ """AllowlistEntryStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAllowlistEntryStatus(self):
+ """Test AllowlistEntryStatus"""
+ # inst = AllowlistEntryStatus()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_allowlist_metadata.py b/test/test_allowlist_metadata.py
new file mode 100644
index 00000000..f206b267
--- /dev/null
+++ b/test/test_allowlist_metadata.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.allowlist_metadata import AllowlistMetadata
+
+
+class TestAllowlistMetadata(unittest.TestCase):
+ """AllowlistMetadata unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AllowlistMetadata:
+ """Test AllowlistMetadata
+ 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 `AllowlistMetadata`
+ """
+ model = AllowlistMetadata()
+ if include_optional:
+ return AllowlistMetadata(
+ last_synced_at = '2026-05-01T15:30Z',
+ sync_status = 'SUCCESS'
+ )
+ else:
+ return AllowlistMetadata(
+ )
+ """
+
+ def testAllowlistMetadata(self):
+ """Test AllowlistMetadata"""
+ # 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_allowlist_response.py b/test/test_allowlist_response.py
new file mode 100644
index 00000000..0f202d0e
--- /dev/null
+++ b/test/test_allowlist_response.py
@@ -0,0 +1,61 @@
+# 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.allowlist_response import AllowlistResponse
+
+
+class TestAllowlistResponse(unittest.TestCase):
+ """AllowlistResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AllowlistResponse:
+ """Test AllowlistResponse
+ 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 `AllowlistResponse`
+ """
+ model = AllowlistResponse()
+ if include_optional:
+ return AllowlistResponse(
+ data = [{"id":"550e8400-e29b-41d4-a716-446655440000","address":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","assets":["BTC","ETH"],"networks":["ETHEREUM","POLYGON"],"label":"Coinbase Hot Wallet","addressIdentifier":null,"status":"ACTIVE","addedAt":"2024-01-15T10:30:00Z","providerReferenceId":"CB-SAMPLE-001"}],
+ metadata = fireblocks.models.allowlist_metadata.AllowlistMetadata(
+ last_synced_at = '2026-05-01T15:30Z',
+ sync_status = 'SUCCESS', ),
+ total = 42,
+ next = 'eyJsYXN0SWQiOiJlbnRyeS0wMDQifQ=='
+ )
+ else:
+ return AllowlistResponse(
+ data = [{"id":"550e8400-e29b-41d4-a716-446655440000","address":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","assets":["BTC","ETH"],"networks":["ETHEREUM","POLYGON"],"label":"Coinbase Hot Wallet","addressIdentifier":null,"status":"ACTIVE","addedAt":"2024-01-15T10:30:00Z","providerReferenceId":"CB-SAMPLE-001"}],
+ total = 42,
+ )
+ """
+
+ def testAllowlistResponse(self):
+ """Test AllowlistResponse"""
+ # 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_balance_history_paged_response.py b/test/test_balance_history_paged_response.py
index ee8eec13..faa8583b 100644
--- a/test/test_balance_history_paged_response.py
+++ b/test/test_balance_history_paged_response.py
@@ -37,22 +37,14 @@ def make_instance(self, include_optional) -> BalanceHistoryPagedResponse:
model = BalanceHistoryPagedResponse()
if include_optional:
return BalanceHistoryPagedResponse(
- data = [
- fireblocks.models.balance_history_item_dto.BalanceHistoryItemDto(
- timestamp = '2024-01-01T23:59:59.999Z',
- balance = '1000000000000000000000', )
- ],
+ data = [{"timestamp":"2024-01-01T23:59:59.999Z","balance":"1000000000000000000000"}],
next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
total = 150
)
else:
return BalanceHistoryPagedResponse(
- data = [
- fireblocks.models.balance_history_item_dto.BalanceHistoryItemDto(
- timestamp = '2024-01-01T23:59:59.999Z',
- balance = '1000000000000000000000', )
- ],
+ data = [{"timestamp":"2024-01-01T23:59:59.999Z","balance":"1000000000000000000000"}],
)
"""
diff --git a/test/test_balance_history_paged_response2.py b/test/test_balance_history_paged_response2.py
new file mode 100644
index 00000000..1c5dae83
--- /dev/null
+++ b/test/test_balance_history_paged_response2.py
@@ -0,0 +1,68 @@
+# 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.balance_history_paged_response2 import (
+ BalanceHistoryPagedResponse2,
+)
+
+
+class TestBalanceHistoryPagedResponse2(unittest.TestCase):
+ """BalanceHistoryPagedResponse2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> BalanceHistoryPagedResponse2:
+ """Test BalanceHistoryPagedResponse2
+ 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 `BalanceHistoryPagedResponse2`
+ """
+ model = BalanceHistoryPagedResponse2()
+ if include_optional:
+ return BalanceHistoryPagedResponse2(
+ data = [
+ fireblocks.models.balance_history_item_dto.BalanceHistoryItemDto(
+ timestamp = '2024-01-01T23:59:59.999Z',
+ balance = '1000000000000000000000', )
+ ],
+ next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
+ prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
+ total = 150
+ )
+ else:
+ return BalanceHistoryPagedResponse2(
+ data = [
+ fireblocks.models.balance_history_item_dto.BalanceHistoryItemDto(
+ timestamp = '2024-01-01T23:59:59.999Z',
+ balance = '1000000000000000000000', )
+ ],
+ )
+ """
+
+ def testBalanceHistoryPagedResponse2(self):
+ """Test BalanceHistoryPagedResponse2"""
+ # 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_business_identification.py b/test/test_business_identification.py
index ad19a93b..17145e1b 100644
--- a/test/test_business_identification.py
+++ b/test/test_business_identification.py
@@ -44,7 +44,9 @@ def make_instance(self, include_optional) -> BusinessIdentification:
registration_number = '',
postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"},
email = '',
- phone = '+14155551234'
+ phone = '+14155551234',
+ date_of_registration = 'Mon Jun 15 00:00:00 GMT 2020',
+ country_of_registration = 'US'
)
else:
return BusinessIdentification(
diff --git a/test/test_connected_account.py b/test/test_connected_account.py
index 7dcdb8bf..64767076 100644
--- a/test/test_connected_account.py
+++ b/test/test_connected_account.py
@@ -48,7 +48,10 @@ def make_instance(self, include_optional) -> ConnectedAccount:
manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest(
asset_types = [],
capabilities = ["WITHDRAWALS"], ),
- parent_id = 'acc-parent-001'
+ parent_id = 'acc-parent-001',
+ api_key = 'rk_live_abc123',
+ provider_account_name = 'Main Account',
+ account_type = 'CONNECTED_ACCOUNT'
)
else:
return ConnectedAccount(
@@ -63,6 +66,7 @@ def make_instance(self, include_optional) -> ConnectedAccount:
manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest(
asset_types = [],
capabilities = ["WITHDRAWALS"], ),
+ account_type = 'CONNECTED_ACCOUNT',
)
"""
diff --git a/test/test_connected_account_type.py b/test/test_connected_account_type.py
new file mode 100644
index 00000000..b6ce3350
--- /dev/null
+++ b/test/test_connected_account_type.py
@@ -0,0 +1,36 @@
+# 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.connected_account_type import ConnectedAccountType
+
+
+class TestConnectedAccountType(unittest.TestCase):
+ """ConnectedAccountType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testConnectedAccountType(self):
+ """Test ConnectedAccountType"""
+ # inst = ConnectedAccountType()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_connected_accounts_beta_api.py b/test/test_connected_accounts_beta_api.py
index 214309b0..3e9c03d1 100644
--- a/test/test_connected_accounts_beta_api.py
+++ b/test/test_connected_accounts_beta_api.py
@@ -41,6 +41,20 @@ def test_get_connected_account(self) -> None:
"""
pass
+ def test_get_connected_account_allowlist(self) -> None:
+ """Test case for get_connected_account_allowlist
+
+ Get allowlist for connected account
+ """
+ pass
+
+ def test_get_connected_account_allowlist_entry(self) -> None:
+ """Test case for get_connected_account_allowlist_entry
+
+ Get a single allowlist entry for a connected account
+ """
+ pass
+
def test_get_connected_account_balances(self) -> None:
"""Test case for get_connected_account_balances
@@ -76,6 +90,13 @@ def test_rename_connected_account(self) -> None:
"""
pass
+ def test_sync_connected_account_allowlist(self) -> None:
+ """Test case for sync_connected_account_allowlist
+
+ Sync allowlist for connected account
+ """
+ pass
+
if __name__ == "__main__":
unittest.main()
diff --git a/test/test_connected_accounts_response.py b/test/test_connected_accounts_response.py
index 594fd9be..e186936f 100644
--- a/test/test_connected_accounts_response.py
+++ b/test/test_connected_accounts_response.py
@@ -37,13 +37,13 @@ def make_instance(self, include_optional) -> ConnectedAccountsResponse:
model = ConnectedAccountsResponse()
if include_optional:
return ConnectedAccountsResponse(
- data = [{"id":"acc-123456","name":"Main Venue Account","providerId":"BRIDGE","status":"APPROVED","totalBalance":{"amount":"1201.15","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":true},"manifest":{"assetTypes":[],"capabilities":["DEPOSITS","WITHDRAWALS"]}},{"id":"acc-654321","name":"Secondary Account","providerId":"BRIDGE","status":"WAITING_FOR_APPROVAL","totalBalance":{"amount":"0.00","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":false},"manifest":{"assetTypes":[],"capabilities":["WITHDRAWALS"]}}],
+ data = [{"id":"acc-123456","name":"Main Venue Account","providerId":"BRIDGE","status":"APPROVED","totalBalance":{"amount":"1201.15","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":true},"manifest":{"assetTypes":[],"capabilities":["DEPOSITS","WITHDRAWALS"]},"accountType":"CONNECTED_ACCOUNT"},{"id":"acc-654321","name":"Secondary Account","providerId":"BRIDGE","status":"WAITING_FOR_APPROVAL","totalBalance":{"amount":"0.00","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":false},"manifest":{"assetTypes":[],"capabilities":["WITHDRAWALS"]},"accountType":"CONNECTED_ACCOUNT"}],
total = 2,
next = 'eyJwYWdlIjoyfQ=='
)
else:
return ConnectedAccountsResponse(
- data = [{"id":"acc-123456","name":"Main Venue Account","providerId":"BRIDGE","status":"APPROVED","totalBalance":{"amount":"1201.15","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":true},"manifest":{"assetTypes":[],"capabilities":["DEPOSITS","WITHDRAWALS"]}},{"id":"acc-654321","name":"Secondary Account","providerId":"BRIDGE","status":"WAITING_FOR_APPROVAL","totalBalance":{"amount":"0.00","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":false},"manifest":{"assetTypes":[],"capabilities":["WITHDRAWALS"]}}],
+ data = [{"id":"acc-123456","name":"Main Venue Account","providerId":"BRIDGE","status":"APPROVED","totalBalance":{"amount":"1201.15","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":true},"manifest":{"assetTypes":[],"capabilities":["DEPOSITS","WITHDRAWALS"]},"accountType":"CONNECTED_ACCOUNT"},{"id":"acc-654321","name":"Secondary Account","providerId":"BRIDGE","status":"WAITING_FOR_APPROVAL","totalBalance":{"amount":"0.00","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":false},"manifest":{"assetTypes":[],"capabilities":["WITHDRAWALS"]},"accountType":"CONNECTED_ACCOUNT"}],
)
"""
diff --git a/test/test_connected_single_account_response.py b/test/test_connected_single_account_response.py
index a03de8fc..5055ba83 100644
--- a/test/test_connected_single_account_response.py
+++ b/test/test_connected_single_account_response.py
@@ -51,6 +51,9 @@ def make_instance(self, include_optional) -> ConnectedSingleAccountResponse:
asset_types = [],
capabilities = ["WITHDRAWALS"], ),
parent_id = 'acc-parent-001',
+ api_key = 'rk_live_abc123',
+ provider_account_name = 'Main Account',
+ account_type = 'CONNECTED_ACCOUNT',
sub_accounts_ids = [acc-sub-001, acc-sub-002]
)
else:
@@ -66,6 +69,7 @@ def make_instance(self, include_optional) -> ConnectedSingleAccountResponse:
manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest(
asset_types = [],
capabilities = ["WITHDRAWALS"], ),
+ account_type = 'CONNECTED_ACCOUNT',
)
"""
diff --git a/test/test_create_webhook_request.py b/test/test_create_webhook_request.py
index 9e76b7e9..898ab334 100644
--- a/test/test_create_webhook_request.py
+++ b/test/test_create_webhook_request.py
@@ -40,7 +40,11 @@ def make_instance(self, include_optional) -> CreateWebhookRequest:
url = 'https://example.com/webhook',
description = 'This webhook is used for transactions notifications',
events = ["transaction.created","transaction.status.updated"],
- enabled = False
+ enabled = False,
+ mtls = fireblocks.models.webhook_mtls.WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----', )
)
else:
return CreateWebhookRequest(
diff --git a/test/test_identification.py b/test/test_identification.py
index 2765bd91..67c17d16 100644
--- a/test/test_identification.py
+++ b/test/test_identification.py
@@ -51,8 +51,12 @@ def make_instance(self, include_optional) -> Identification:
id_type = 'NIN_SLIP_CARD',
additional_id_number = '',
additional_id_type = 'NIN_SLIP_CARD',
+ nationality = 'US',
+ identification_documents = [{id=12345678901, type=PASSPORT, expirationDate=2030-03-15}],
business_name = '',
- registration_number = ''
+ registration_number = '',
+ date_of_registration = 'Mon Jun 15 00:00:00 GMT 2020',
+ country_of_registration = 'US'
)
else:
return Identification(
diff --git a/test/test_offer.py b/test/test_offer.py
index 6965fdf1..7915b804 100644
--- a/test/test_offer.py
+++ b/test/test_offer.py
@@ -58,7 +58,7 @@ def make_instance(self, include_optional) -> Offer:
],
side = 'BUY',
expires_at = '2024-01-15T10:35:00.000Z',
- order_creation_requirements = '',
+ required_participants_identification_on_order = '',
type = 'COMMITTED'
)
else:
diff --git a/test/test_onchain_transactions_paged_response.py b/test/test_onchain_transactions_paged_response.py
index e92d54a2..61e3bfd0 100644
--- a/test/test_onchain_transactions_paged_response.py
+++ b/test/test_onchain_transactions_paged_response.py
@@ -39,62 +39,14 @@ def make_instance(self, include_optional) -> OnchainTransactionsPagedResponse:
model = OnchainTransactionsPagedResponse()
if include_optional:
return OnchainTransactionsPagedResponse(
- data = [
- fireblocks.models.onchain_transaction.OnchainTransaction(
- id = '550e8400-e29b-41d4-a716-446655440000',
- base_asset_id = 'ETH_TEST3',
- block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
- block_number = 12345678,
- block_timestamp = '2025-01-16T15:45Z',
- chain_id = 1,
- contract_address = '0x1234567890123456789012345678901234567890',
- cumulative_gas_used = '21000',
- decoded_logs = fireblocks.models.decoded_log.DecodedLog(
- address = '0x1234567890123456789012345678901234567890',
- block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
- block_number = '12345678',
- transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
- log_index = '0', ),
- effective_gas_price = '20000000000',
- from_address = '0xabcdef1234567890abcdef1234567890abcdef12',
- gas_used = '21000',
- status = '1',
- to_address = '0x1234567890123456789012345678901234567890',
- transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
- transaction_index = '0',
- type = '2', )
- ],
+ data = [{"id":"550e8400-e29b-41d4-a716-446655440000","baseAssetId":"ETH_TEST3","blockHash":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","blockNumber":12345678,"blockTimestamp":"2025-01-16T15:45:00Z","chainId":1,"contractAddress":"0x1234567890123456789012345678901234567890","cumulativeGasUsed":"21000","effectiveGasPrice":"20000000000","fromAddress":"0xabcdef1234567890abcdef1234567890abcdef12","gasUsed":"21000","status":"1","toAddress":"0x1234567890123456789012345678901234567890","transactionHash":"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890","transactionIndex":"0","type":"2"}],
next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
total = 150
)
else:
return OnchainTransactionsPagedResponse(
- data = [
- fireblocks.models.onchain_transaction.OnchainTransaction(
- id = '550e8400-e29b-41d4-a716-446655440000',
- base_asset_id = 'ETH_TEST3',
- block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
- block_number = 12345678,
- block_timestamp = '2025-01-16T15:45Z',
- chain_id = 1,
- contract_address = '0x1234567890123456789012345678901234567890',
- cumulative_gas_used = '21000',
- decoded_logs = fireblocks.models.decoded_log.DecodedLog(
- address = '0x1234567890123456789012345678901234567890',
- block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
- block_number = '12345678',
- transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
- log_index = '0', ),
- effective_gas_price = '20000000000',
- from_address = '0xabcdef1234567890abcdef1234567890abcdef12',
- gas_used = '21000',
- status = '1',
- to_address = '0x1234567890123456789012345678901234567890',
- transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
- transaction_index = '0',
- type = '2', )
- ],
+ data = [{"id":"550e8400-e29b-41d4-a716-446655440000","baseAssetId":"ETH_TEST3","blockHash":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","blockNumber":12345678,"blockTimestamp":"2025-01-16T15:45:00Z","chainId":1,"contractAddress":"0x1234567890123456789012345678901234567890","cumulativeGasUsed":"21000","effectiveGasPrice":"20000000000","fromAddress":"0xabcdef1234567890abcdef1234567890abcdef12","gasUsed":"21000","status":"1","toAddress":"0x1234567890123456789012345678901234567890","transactionHash":"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890","transactionIndex":"0","type":"2"}],
)
"""
diff --git a/test/test_onchain_transactions_paged_response2.py b/test/test_onchain_transactions_paged_response2.py
new file mode 100644
index 00000000..b9220149
--- /dev/null
+++ b/test/test_onchain_transactions_paged_response2.py
@@ -0,0 +1,108 @@
+# 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.onchain_transactions_paged_response2 import (
+ OnchainTransactionsPagedResponse2,
+)
+
+
+class TestOnchainTransactionsPagedResponse2(unittest.TestCase):
+ """OnchainTransactionsPagedResponse2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OnchainTransactionsPagedResponse2:
+ """Test OnchainTransactionsPagedResponse2
+ 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 `OnchainTransactionsPagedResponse2`
+ """
+ model = OnchainTransactionsPagedResponse2()
+ if include_optional:
+ return OnchainTransactionsPagedResponse2(
+ data = [
+ fireblocks.models.onchain_transaction.OnchainTransaction(
+ id = '550e8400-e29b-41d4-a716-446655440000',
+ base_asset_id = 'ETH_TEST3',
+ block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
+ block_number = 12345678,
+ block_timestamp = '2025-01-16T15:45Z',
+ chain_id = 1,
+ contract_address = '0x1234567890123456789012345678901234567890',
+ cumulative_gas_used = '21000',
+ decoded_logs = fireblocks.models.decoded_log.DecodedLog(
+ address = '0x1234567890123456789012345678901234567890',
+ block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
+ block_number = '12345678',
+ transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
+ log_index = '0', ),
+ effective_gas_price = '20000000000',
+ from_address = '0xabcdef1234567890abcdef1234567890abcdef12',
+ gas_used = '21000',
+ status = '1',
+ to_address = '0x1234567890123456789012345678901234567890',
+ transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
+ transaction_index = '0',
+ type = '2', )
+ ],
+ next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
+ prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
+ total = 150
+ )
+ else:
+ return OnchainTransactionsPagedResponse2(
+ data = [
+ fireblocks.models.onchain_transaction.OnchainTransaction(
+ id = '550e8400-e29b-41d4-a716-446655440000',
+ base_asset_id = 'ETH_TEST3',
+ block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
+ block_number = 12345678,
+ block_timestamp = '2025-01-16T15:45Z',
+ chain_id = 1,
+ contract_address = '0x1234567890123456789012345678901234567890',
+ cumulative_gas_used = '21000',
+ decoded_logs = fireblocks.models.decoded_log.DecodedLog(
+ address = '0x1234567890123456789012345678901234567890',
+ block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
+ block_number = '12345678',
+ transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
+ log_index = '0', ),
+ effective_gas_price = '20000000000',
+ from_address = '0xabcdef1234567890abcdef1234567890abcdef12',
+ gas_used = '21000',
+ status = '1',
+ to_address = '0x1234567890123456789012345678901234567890',
+ transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
+ transaction_index = '0',
+ type = '2', )
+ ],
+ )
+ """
+
+ def testOnchainTransactionsPagedResponse2(self):
+ """Test OnchainTransactionsPagedResponse2"""
+ # 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_onchain_transfer_event.py b/test/test_onchain_transfer_event.py
new file mode 100644
index 00000000..b0191bf5
--- /dev/null
+++ b/test/test_onchain_transfer_event.py
@@ -0,0 +1,79 @@
+# 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.onchain_transfer_event import OnchainTransferEvent
+
+
+class TestOnchainTransferEvent(unittest.TestCase):
+ """OnchainTransferEvent unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OnchainTransferEvent:
+ """Test OnchainTransferEvent
+ 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 `OnchainTransferEvent`
+ """
+ model = OnchainTransferEvent()
+ if include_optional:
+ return OnchainTransferEvent(
+ id = '550e8400-e29b-41d4-a716-446655440000',
+ transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
+ log_index = '0',
+ contract_address = '0x1234567890123456789012345678901234567890',
+ from_address = '0xabcdef1234567890abcdef1234567890abcdef12',
+ to_address = '0x1234567890123456789012345678901234567890',
+ value = '1000000000000000000',
+ chain_id = 1,
+ base_asset_id = 'ETH_TEST3',
+ block_number = 12345678,
+ block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
+ block_timestamp = '2025-01-16T15:45Z',
+ event_name = 'Transfer'
+ )
+ else:
+ return OnchainTransferEvent(
+ id = '550e8400-e29b-41d4-a716-446655440000',
+ transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
+ log_index = '0',
+ contract_address = '0x1234567890123456789012345678901234567890',
+ from_address = '0xabcdef1234567890abcdef1234567890abcdef12',
+ to_address = '0x1234567890123456789012345678901234567890',
+ value = '1000000000000000000',
+ chain_id = 1,
+ base_asset_id = 'ETH_TEST3',
+ block_number = 12345678,
+ block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
+ block_timestamp = '2025-01-16T15:45Z',
+ event_name = 'Transfer',
+ )
+ """
+
+ def testOnchainTransferEvent(self):
+ """Test OnchainTransferEvent"""
+ # 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_onchain_transfers_paged_response.py b/test/test_onchain_transfers_paged_response.py
new file mode 100644
index 00000000..6a7f8468
--- /dev/null
+++ b/test/test_onchain_transfers_paged_response.py
@@ -0,0 +1,60 @@
+# 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.onchain_transfers_paged_response import (
+ OnchainTransfersPagedResponse,
+)
+
+
+class TestOnchainTransfersPagedResponse(unittest.TestCase):
+ """OnchainTransfersPagedResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OnchainTransfersPagedResponse:
+ """Test OnchainTransfersPagedResponse
+ 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 `OnchainTransfersPagedResponse`
+ """
+ model = OnchainTransfersPagedResponse()
+ if include_optional:
+ return OnchainTransfersPagedResponse(
+ data = [{"id":"550e8400-e29b-41d4-a716-446655440000","transactionHash":"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890","logIndex":"0","contractAddress":"0x1234567890123456789012345678901234567890","fromAddress":"0xabcdef1234567890abcdef1234567890abcdef12","toAddress":"0x1234567890123456789012345678901234567890","value":"1000000000000000000","chainId":1,"baseAssetId":"ETH_TEST3","blockNumber":12345678,"blockHash":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","blockTimestamp":"2025-01-16T15:45:00Z","eventName":"Transfer"}],
+ next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
+ prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
+ total = 150
+ )
+ else:
+ return OnchainTransfersPagedResponse(
+ data = [{"id":"550e8400-e29b-41d4-a716-446655440000","transactionHash":"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890","logIndex":"0","contractAddress":"0x1234567890123456789012345678901234567890","fromAddress":"0xabcdef1234567890abcdef1234567890abcdef12","toAddress":"0x1234567890123456789012345678901234567890","value":"1000000000000000000","chainId":1,"baseAssetId":"ETH_TEST3","blockNumber":12345678,"blockHash":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","blockTimestamp":"2025-01-16T15:45:00Z","eventName":"Transfer"}],
+ )
+ """
+
+ def testOnchainTransfersPagedResponse(self):
+ """Test OnchainTransfersPagedResponse"""
+ # 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_order_requirement_allowed_file_type.py b/test/test_order_requirement_allowed_file_type.py
new file mode 100644
index 00000000..de4f265a
--- /dev/null
+++ b/test/test_order_requirement_allowed_file_type.py
@@ -0,0 +1,38 @@
+# 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.order_requirement_allowed_file_type import (
+ OrderRequirementAllowedFileType,
+)
+
+
+class TestOrderRequirementAllowedFileType(unittest.TestCase):
+ """OrderRequirementAllowedFileType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testOrderRequirementAllowedFileType(self):
+ """Test OrderRequirementAllowedFileType"""
+ # inst = OrderRequirementAllowedFileType()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_order_requirement_details.py b/test/test_order_requirement_details.py
new file mode 100644
index 00000000..577bed34
--- /dev/null
+++ b/test/test_order_requirement_details.py
@@ -0,0 +1,90 @@
+# 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.order_requirement_details import OrderRequirementDetails
+
+
+class TestOrderRequirementDetails(unittest.TestCase):
+ """OrderRequirementDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OrderRequirementDetails:
+ """Test OrderRequirementDetails
+ 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 `OrderRequirementDetails`
+ """
+ model = OrderRequirementDetails()
+ if include_optional:
+ return OrderRequirementDetails(
+ requirement_id = 'info_7c1f9b2e4a6d',
+ due_by = '2024-01-15T10:35Z',
+ required_data = '{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["sourceOfFunds", "purposeOfPayment"],
+ "properties": {
+ "sourceOfFunds": {
+ "type": "string",
+ "enum": ["SALARY", "SAVINGS", "INVESTMENT_RETURNS", "BUSINESS_INCOME", "OTHER"]
+ },
+ "purposeOfPayment": {
+ "type": "string",
+ "enum": ["BUSINESS_EXPENSES", "PERSONAL_EXPENSES", "INVESTMENT", "OTHER"]
+ }
+ }
+}
+',
+ required_files = [{"fileKey":"identity_document","description":"A clear photo or scan of the account holder's government-issued ID.","allowedFileTypes":["PDF","JPEG","PNG"]}]
+ )
+ else:
+ return OrderRequirementDetails(
+ requirement_id = 'info_7c1f9b2e4a6d',
+ required_data = '{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["sourceOfFunds", "purposeOfPayment"],
+ "properties": {
+ "sourceOfFunds": {
+ "type": "string",
+ "enum": ["SALARY", "SAVINGS", "INVESTMENT_RETURNS", "BUSINESS_INCOME", "OTHER"]
+ },
+ "purposeOfPayment": {
+ "type": "string",
+ "enum": ["BUSINESS_EXPENSES", "PERSONAL_EXPENSES", "INVESTMENT", "OTHER"]
+ }
+ }
+}
+',
+ required_files = [{"fileKey":"identity_document","description":"A clear photo or scan of the account holder's government-issued ID.","allowedFileTypes":["PDF","JPEG","PNG"]}],
+ )
+ """
+
+ def testOrderRequirementDetails(self):
+ """Test OrderRequirementDetails"""
+ # 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_order_requirement_file.py b/test/test_order_requirement_file.py
new file mode 100644
index 00000000..5cc017c0
--- /dev/null
+++ b/test/test_order_requirement_file.py
@@ -0,0 +1,59 @@
+# 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.order_requirement_file import OrderRequirementFile
+
+
+class TestOrderRequirementFile(unittest.TestCase):
+ """OrderRequirementFile unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OrderRequirementFile:
+ """Test OrderRequirementFile
+ 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 `OrderRequirementFile`
+ """
+ model = OrderRequirementFile()
+ if include_optional:
+ return OrderRequirementFile(
+ file_key = 'identity_document',
+ description = 'A clear photo or scan of the account holder's government-issued ID.',
+ allowed_file_types = ["PDF","JPEG","PNG"]
+ )
+ else:
+ return OrderRequirementFile(
+ file_key = 'identity_document',
+ description = 'A clear photo or scan of the account holder's government-issued ID.',
+ allowed_file_types = ["PDF","JPEG","PNG"],
+ )
+ """
+
+ def testOrderRequirementFile(self):
+ """Test OrderRequirementFile"""
+ # 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_personal_identification.py b/test/test_personal_identification.py
index 1f76345f..a037c953 100644
--- a/test/test_personal_identification.py
+++ b/test/test_personal_identification.py
@@ -50,7 +50,9 @@ def make_instance(self, include_optional) -> PersonalIdentification:
id_number = '',
id_type = 'NIN_SLIP_CARD',
additional_id_number = '',
- additional_id_type = 'NIN_SLIP_CARD'
+ additional_id_type = 'NIN_SLIP_CARD',
+ nationality = 'US',
+ identification_documents = [{"id":"12345678901","type":"PASSPORT","expirationDate":"2030-03-15"}]
)
else:
return PersonalIdentification(
diff --git a/test/test_personal_identification_document.py b/test/test_personal_identification_document.py
new file mode 100644
index 00000000..d8437ec4
--- /dev/null
+++ b/test/test_personal_identification_document.py
@@ -0,0 +1,58 @@
+# 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.personal_identification_document import (
+ PersonalIdentificationDocument,
+)
+
+
+class TestPersonalIdentificationDocument(unittest.TestCase):
+ """PersonalIdentificationDocument unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PersonalIdentificationDocument:
+ """Test PersonalIdentificationDocument
+ 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 `PersonalIdentificationDocument`
+ """
+ model = PersonalIdentificationDocument()
+ if include_optional:
+ return PersonalIdentificationDocument(
+ id = '12345678901',
+ type = 'NIN_SLIP_CARD',
+ expiration_date = 'Fri Mar 15 00:00:00 GMT 2030'
+ )
+ else:
+ return PersonalIdentificationDocument(
+ )
+ """
+
+ def testPersonalIdentificationDocument(self):
+ """Test PersonalIdentificationDocument"""
+ # 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_position_related_transaction.py b/test/test_position_related_transaction.py
new file mode 100644
index 00000000..fd480976
--- /dev/null
+++ b/test/test_position_related_transaction.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.position_related_transaction import PositionRelatedTransaction
+
+
+class TestPositionRelatedTransaction(unittest.TestCase):
+ """PositionRelatedTransaction unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PositionRelatedTransaction:
+ """Test PositionRelatedTransaction
+ 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 `PositionRelatedTransaction`
+ """
+ model = PositionRelatedTransaction()
+ if include_optional:
+ return PositionRelatedTransaction(
+ tx_id = 'b70601f4-d7b1-4795-a8ee-b09cdb4r850d',
+ tx_hash = '0xabc123...',
+ staking_operation = 'STAKE',
+ timestamp = '2024-01-15T10:30Z',
+ status = 'COMPLETED',
+ amount = '32',
+ tx_note = 'stake request of 32ETH created on 02.04.23'
+ )
+ else:
+ return PositionRelatedTransaction(
+ tx_id = 'b70601f4-d7b1-4795-a8ee-b09cdb4r850d',
+ timestamp = '2024-01-15T10:30Z',
+ status = 'COMPLETED',
+ )
+ """
+
+ def testPositionRelatedTransaction(self):
+ """Test PositionRelatedTransaction"""
+ # 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 8edea834..92343b0d 100644
--- a/test/test_quote.py
+++ b/test/test_quote.py
@@ -56,7 +56,7 @@ def make_instance(self, include_optional) -> Quote:
],
side = 'BUY',
expires_at = '2024-01-15T10:35:00.000Z',
- order_creation_requirements = '',
+ required_participants_identification_on_order = '',
type = 'COMMITTED'
)
else:
diff --git a/test/test_quote_offer.py b/test/test_quote_offer.py
index f7ebdb3d..b9ead3b8 100644
--- a/test/test_quote_offer.py
+++ b/test/test_quote_offer.py
@@ -56,7 +56,7 @@ def make_instance(self, include_optional) -> QuoteOffer:
],
side = 'BUY',
expires_at = '2024-01-15T10:35:00.000Z',
- order_creation_requirements = '',
+ required_participants_identification_on_order = '',
type = 'COMMITTED',
offer_type = 'QUOTE'
)
diff --git a/test/test_quotes_response.py b/test/test_quotes_response.py
index d348aab7..b8b4cb61 100644
--- a/test/test_quotes_response.py
+++ b/test/test_quotes_response.py
@@ -58,7 +58,7 @@ def make_instance(self, include_optional) -> QuotesResponse:
],
side = 'BUY',
expires_at = '2024-01-15T10:35:00.000Z',
- order_creation_requirements = '',
+ required_participants_identification_on_order = '',
type = 'COMMITTED', )
],
quote_failures = [
@@ -91,7 +91,7 @@ def make_instance(self, include_optional) -> QuotesResponse:
],
side = 'BUY',
expires_at = '2024-01-15T10:35:00.000Z',
- order_creation_requirements = '',
+ required_participants_identification_on_order = '',
type = 'COMMITTED', )
],
quote_failures = [
diff --git a/test/test_remove_collateral_request_body.py b/test/test_remove_collateral_request_body.py
index c99c1411..8ebf340f 100644
--- a/test/test_remove_collateral_request_body.py
+++ b/test/test_remove_collateral_request_body.py
@@ -207,7 +207,8 @@ def make_instance(self, include_optional) -> RemoveCollateralRequestBody:
network_staking = null,
cpu_staking = null,
use_gasless = True,
- expires_after_seconds = 3600, ),
+ configurations = fireblocks.models.transaction_configurations.TransactionConfigurations(
+ expires_after_seconds = 3600, ), ),
is_dst_collateral = True
)
else:
diff --git a/test/test_role_details.py b/test/test_role_details.py
index 4036717a..fe2bcc3e 100644
--- a/test/test_role_details.py
+++ b/test/test_role_details.py
@@ -39,21 +39,13 @@ def make_instance(self, include_optional) -> RoleDetails:
return RoleDetails(
role_hash = '0x0000000000000000000000000000000000000000000000000000000000000000',
description = 'DEFAULT_ADMIN_ROLE',
- accounts = [
- fireblocks.models.role_grantee.RoleGrantee(
- account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
- date_of_grant = '2024-07-01T00:00Z', )
- ]
+ accounts = [{"accountAddress":"0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66","dateOfGrant":"2024-07-01T00:00:00.000Z"}]
)
else:
return RoleDetails(
role_hash = '0x0000000000000000000000000000000000000000000000000000000000000000',
description = 'DEFAULT_ADMIN_ROLE',
- accounts = [
- fireblocks.models.role_grantee.RoleGrantee(
- account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
- date_of_grant = '2024-07-01T00:00Z', )
- ],
+ accounts = [{"accountAddress":"0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66","dateOfGrant":"2024-07-01T00:00:00.000Z"}],
)
"""
diff --git a/test/test_role_details2.py b/test/test_role_details2.py
new file mode 100644
index 00000000..b3683c92
--- /dev/null
+++ b/test/test_role_details2.py
@@ -0,0 +1,67 @@
+# 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.role_details2 import RoleDetails2
+
+
+class TestRoleDetails2(unittest.TestCase):
+ """RoleDetails2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RoleDetails2:
+ """Test RoleDetails2
+ 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 `RoleDetails2`
+ """
+ model = RoleDetails2()
+ if include_optional:
+ return RoleDetails2(
+ role_hash = '0x0000000000000000000000000000000000000000000000000000000000000000',
+ description = 'DEFAULT_ADMIN_ROLE',
+ accounts = [
+ fireblocks.models.role_grantee.RoleGrantee(
+ account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
+ date_of_grant = '2024-07-01T00:00Z', )
+ ]
+ )
+ else:
+ return RoleDetails2(
+ role_hash = '0x0000000000000000000000000000000000000000000000000000000000000000',
+ description = 'DEFAULT_ADMIN_ROLE',
+ accounts = [
+ fireblocks.models.role_grantee.RoleGrantee(
+ account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66',
+ date_of_grant = '2024-07-01T00:00Z', )
+ ],
+ )
+ """
+
+ def testRoleDetails2(self):
+ """Test RoleDetails2"""
+ # 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_staking_api.py b/test/test_staking_api.py
index ec5580f2..4a6ba5c8 100644
--- a/test/test_staking_api.py
+++ b/test/test_staking_api.py
@@ -76,6 +76,13 @@ def test_get_delegation_by_id(self) -> None:
"""
pass
+ def test_get_position_related_transactions(self) -> None:
+ """Test case for get_position_related_transactions
+
+ List related transactions for a position
+ """
+ pass
+
def test_get_positions(self) -> None:
"""Test case for get_positions
diff --git a/test/test_staking_position_related_transactions_paginated_response.py b/test/test_staking_position_related_transactions_paginated_response.py
new file mode 100644
index 00000000..eb58e212
--- /dev/null
+++ b/test/test_staking_position_related_transactions_paginated_response.py
@@ -0,0 +1,60 @@
+# 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.staking_position_related_transactions_paginated_response import (
+ StakingPositionRelatedTransactionsPaginatedResponse,
+)
+
+
+class TestStakingPositionRelatedTransactionsPaginatedResponse(unittest.TestCase):
+ """StakingPositionRelatedTransactionsPaginatedResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(
+ self, include_optional
+ ) -> StakingPositionRelatedTransactionsPaginatedResponse:
+ """Test StakingPositionRelatedTransactionsPaginatedResponse
+ 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 `StakingPositionRelatedTransactionsPaginatedResponse`
+ """
+ model = StakingPositionRelatedTransactionsPaginatedResponse()
+ if include_optional:
+ return StakingPositionRelatedTransactionsPaginatedResponse(
+ data = [{"txId":"b70601f4-d7b1-4795-a8ee-b09cdb4r850d","txHash":"0xabc123...","stakingOperation":"STAKE","timestamp":"2024-01-15T10:30:00.000Z","status":"COMPLETED","amount":"32"}],
+ next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9'
+ )
+ else:
+ return StakingPositionRelatedTransactionsPaginatedResponse(
+ data = [{"txId":"b70601f4-d7b1-4795-a8ee-b09cdb4r850d","txHash":"0xabc123...","stakingOperation":"STAKE","timestamp":"2024-01-15T10:30:00.000Z","status":"COMPLETED","amount":"32"}],
+ )
+ """
+
+ def testStakingPositionRelatedTransactionsPaginatedResponse(self):
+ """Test StakingPositionRelatedTransactionsPaginatedResponse"""
+ # 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_submit_order_requirement_request.py b/test/test_submit_order_requirement_request.py
new file mode 100644
index 00000000..1c2af84e
--- /dev/null
+++ b/test/test_submit_order_requirement_request.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.submit_order_requirement_request import (
+ SubmitOrderRequirementRequest,
+)
+
+
+class TestSubmitOrderRequirementRequest(unittest.TestCase):
+ """SubmitOrderRequirementRequest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SubmitOrderRequirementRequest:
+ """Test SubmitOrderRequirementRequest
+ 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 `SubmitOrderRequirementRequest`
+ """
+ model = SubmitOrderRequirementRequest()
+ if include_optional:
+ return SubmitOrderRequirementRequest(
+ data = {"fullName":"Jane Doe","nationality":"US"}
+ )
+ else:
+ return SubmitOrderRequirementRequest(
+ data = {"fullName":"Jane Doe","nationality":"US"},
+ )
+ """
+
+ def testSubmitOrderRequirementRequest(self):
+ """Test SubmitOrderRequirementRequest"""
+ # 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_tokenization_api.py b/test/test_tokenization_api.py
index 73158c69..6f2e8d70 100644
--- a/test/test_tokenization_api.py
+++ b/test/test_tokenization_api.py
@@ -118,6 +118,76 @@ def test_get_linked_tokens_count(self) -> None:
"""
pass
+ def test_get_token_access_registry_addresses(self) -> None:
+ """Test case for get_token_access_registry_addresses
+
+ Get current state of addresses in an access registry
+ """
+ pass
+
+ def test_get_token_access_registry_summary(self) -> None:
+ """Test case for get_token_access_registry_summary
+
+ Get summary of an access registry
+ """
+ pass
+
+ def test_get_token_balance_for_account(self) -> None:
+ """Test case for get_token_balance_for_account
+
+ Get the latest balance for a specific account
+ """
+ pass
+
+ def test_get_token_balance_history(self) -> None:
+ """Test case for get_token_balance_history
+
+ Get balance history for a specific account
+ """
+ pass
+
+ def test_get_token_balances(self) -> None:
+ """Test case for get_token_balances
+
+ Get latest balances for all holders of a token
+ """
+ pass
+
+ def test_get_token_contract_summary(self) -> None:
+ """Test case for get_token_contract_summary
+
+ Get onchain summary for a token
+ """
+ pass
+
+ def test_get_token_rbac(self) -> None:
+ """Test case for get_token_rbac
+
+ Get active RBAC roles for a token
+ """
+ pass
+
+ def test_get_token_total_supply(self) -> None:
+ """Test case for get_token_total_supply
+
+ Get historical total supply for a token
+ """
+ pass
+
+ def test_get_token_transactions(self) -> None:
+ """Test case for get_token_transactions
+
+ Get onchain transactions for a token
+ """
+ pass
+
+ def test_get_token_transfers(self) -> None:
+ """Test case for get_token_transfers
+
+ Get onchain transfers for a token
+ """
+ pass
+
def test_issue_new_token(self) -> None:
"""Test case for issue_new_token
diff --git a/test/test_total_supply_paged_response.py b/test/test_total_supply_paged_response.py
index 05ae2ce5..ef341921 100644
--- a/test/test_total_supply_paged_response.py
+++ b/test/test_total_supply_paged_response.py
@@ -37,22 +37,14 @@ def make_instance(self, include_optional) -> TotalSupplyPagedResponse:
model = TotalSupplyPagedResponse()
if include_optional:
return TotalSupplyPagedResponse(
- data = [
- fireblocks.models.total_supply_item_dto.TotalSupplyItemDto(
- timestamp = '2024-01-01T23:59:59.999Z',
- total_supply = '1000000000000000000000', )
- ],
+ data = [{"timestamp":"2024-01-01T23:59:59.999Z","totalSupply":"1000000000000000000000"}],
next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
total = 150
)
else:
return TotalSupplyPagedResponse(
- data = [
- fireblocks.models.total_supply_item_dto.TotalSupplyItemDto(
- timestamp = '2024-01-01T23:59:59.999Z',
- total_supply = '1000000000000000000000', )
- ],
+ data = [{"timestamp":"2024-01-01T23:59:59.999Z","totalSupply":"1000000000000000000000"}],
)
"""
diff --git a/test/test_total_supply_paged_response2.py b/test/test_total_supply_paged_response2.py
new file mode 100644
index 00000000..e4a86d3d
--- /dev/null
+++ b/test/test_total_supply_paged_response2.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
+
+
+import unittest
+
+from fireblocks.models.total_supply_paged_response2 import TotalSupplyPagedResponse2
+
+
+class TestTotalSupplyPagedResponse2(unittest.TestCase):
+ """TotalSupplyPagedResponse2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TotalSupplyPagedResponse2:
+ """Test TotalSupplyPagedResponse2
+ 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 `TotalSupplyPagedResponse2`
+ """
+ model = TotalSupplyPagedResponse2()
+ if include_optional:
+ return TotalSupplyPagedResponse2(
+ data = [
+ fireblocks.models.total_supply_item_dto.TotalSupplyItemDto(
+ timestamp = '2024-01-01T23:59:59.999Z',
+ total_supply = '1000000000000000000000', )
+ ],
+ next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==',
+ prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==',
+ total = 150
+ )
+ else:
+ return TotalSupplyPagedResponse2(
+ data = [
+ fireblocks.models.total_supply_item_dto.TotalSupplyItemDto(
+ timestamp = '2024-01-01T23:59:59.999Z',
+ total_supply = '1000000000000000000000', )
+ ],
+ )
+ """
+
+ def testTotalSupplyPagedResponse2(self):
+ """Test TotalSupplyPagedResponse2"""
+ # 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_trading_beta_api.py b/test/test_trading_beta_api.py
index f8926ff5..9c742b15 100644
--- a/test/test_trading_beta_api.py
+++ b/test/test_trading_beta_api.py
@@ -62,6 +62,13 @@ def test_get_order(self) -> None:
"""
pass
+ def test_get_order_requirements(self) -> None:
+ """Test case for get_order_requirements
+
+ Get order requirement details for an order
+ """
+ pass
+
def test_get_orders(self) -> None:
"""Test case for get_orders
@@ -83,6 +90,20 @@ def test_get_trading_providers(self) -> None:
"""
pass
+ def test_submit_order_requirements(self) -> None:
+ """Test case for submit_order_requirements
+
+ Submit a response to an order requirement
+ """
+ pass
+
+ def test_upload_order_requirement_file(self) -> None:
+ """Test case for upload_order_requirement_file
+
+ Upload a file for an order requirement
+ """
+ pass
+
if __name__ == "__main__":
unittest.main()
diff --git a/test/test_transaction_configurations.py b/test/test_transaction_configurations.py
new file mode 100644
index 00000000..70e5b385
--- /dev/null
+++ b/test/test_transaction_configurations.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.transaction_configurations import TransactionConfigurations
+
+
+class TestTransactionConfigurations(unittest.TestCase):
+ """TransactionConfigurations unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TransactionConfigurations:
+ """Test TransactionConfigurations
+ 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 `TransactionConfigurations`
+ """
+ model = TransactionConfigurations()
+ if include_optional:
+ return TransactionConfigurations(
+ expires_after_seconds = 3600
+ )
+ else:
+ return TransactionConfigurations(
+ )
+ """
+
+ def testTransactionConfigurations(self):
+ """Test TransactionConfigurations"""
+ # 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_transaction_request.py b/test/test_transaction_request.py
index f30c5f25..caf2fe30 100644
--- a/test/test_transaction_request.py
+++ b/test/test_transaction_request.py
@@ -220,7 +220,8 @@ def make_instance(self, include_optional) -> TransactionRequest:
network_staking = None,
cpu_staking = None,
use_gasless = True,
- expires_after_seconds = 3600
+ configurations = fireblocks.models.transaction_configurations.TransactionConfigurations(
+ expires_after_seconds = 3600, )
)
else:
return TransactionRequest(
diff --git a/test/test_transfer_peer_type_enum2.py b/test/test_transfer_peer_type_enum2.py
new file mode 100644
index 00000000..990f3299
--- /dev/null
+++ b/test/test_transfer_peer_type_enum2.py
@@ -0,0 +1,36 @@
+# 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.transfer_peer_type_enum2 import TransferPeerTypeEnum2
+
+
+class TestTransferPeerTypeEnum2(unittest.TestCase):
+ """TransferPeerTypeEnum2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTransferPeerTypeEnum2(self):
+ """Test TransferPeerTypeEnum2"""
+ # inst = TransferPeerTypeEnum2()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_update_webhook_request.py b/test/test_update_webhook_request.py
index c51caf14..42e6ac6c 100644
--- a/test/test_update_webhook_request.py
+++ b/test/test_update_webhook_request.py
@@ -40,7 +40,11 @@ def make_instance(self, include_optional) -> UpdateWebhookRequest:
url = 'https://example.com/webhook',
description = 'This webhook is used for transactions notifications',
events = ["transaction.created","transaction.status.updated"],
- enabled = False
+ enabled = False,
+ mtls = fireblocks.models.webhook_mtls.WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----', )
)
else:
return UpdateWebhookRequest(
diff --git a/test/test_webhook.py b/test/test_webhook.py
index 8d7af5c4..ede0774a 100644
--- a/test/test_webhook.py
+++ b/test/test_webhook.py
@@ -43,7 +43,11 @@ def make_instance(self, include_optional) -> Webhook:
events = ["transaction.created","transaction.status.updated"],
status = 'ENABLED',
created_at = 1625126400000,
- updated_at = 1625126400000
+ updated_at = 1625126400000,
+ mtls = fireblocks.models.webhook_mtls.WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----', )
)
else:
return Webhook(
diff --git a/test/test_webhook_mtls.py b/test/test_webhook_mtls.py
new file mode 100644
index 00000000..96226775
--- /dev/null
+++ b/test/test_webhook_mtls.py
@@ -0,0 +1,59 @@
+# 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.webhook_mtls import WebhookMtls
+
+
+class TestWebhookMtls(unittest.TestCase):
+ """WebhookMtls unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> WebhookMtls:
+ """Test WebhookMtls
+ 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 `WebhookMtls`
+ """
+ model = WebhookMtls()
+ if include_optional:
+ return WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----'
+ )
+ else:
+ return WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----',
+ )
+ """
+
+ def testWebhookMtls(self):
+ """Test WebhookMtls"""
+ # 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_webhook_mtls_csr_response.py b/test/test_webhook_mtls_csr_response.py
new file mode 100644
index 00000000..5223155e
--- /dev/null
+++ b/test/test_webhook_mtls_csr_response.py
@@ -0,0 +1,59 @@
+# 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.webhook_mtls_csr_response import WebhookMtlsCsrResponse
+
+
+class TestWebhookMtlsCsrResponse(unittest.TestCase):
+ """WebhookMtlsCsrResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> WebhookMtlsCsrResponse:
+ """Test WebhookMtlsCsrResponse
+ 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 `WebhookMtlsCsrResponse`
+ """
+ model = WebhookMtlsCsrResponse()
+ if include_optional:
+ return WebhookMtlsCsrResponse(
+ csr = '-----BEGIN CERTIFICATE REQUEST-----
+...
+-----END CERTIFICATE REQUEST-----'
+ )
+ else:
+ return WebhookMtlsCsrResponse(
+ csr = '-----BEGIN CERTIFICATE REQUEST-----
+...
+-----END CERTIFICATE REQUEST-----',
+ )
+ """
+
+ def testWebhookMtlsCsrResponse(self):
+ """Test WebhookMtlsCsrResponse"""
+ # 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_webhook_paginated_response.py b/test/test_webhook_paginated_response.py
index 893429b1..60c07690 100644
--- a/test/test_webhook_paginated_response.py
+++ b/test/test_webhook_paginated_response.py
@@ -45,7 +45,11 @@ def make_instance(self, include_optional) -> WebhookPaginatedResponse:
events = ["transaction.created","transaction.status.updated"],
status = 'ENABLED',
created_at = 1625126400000,
- updated_at = 1625126400000, )
+ updated_at = 1625126400000,
+ mtls = fireblocks.models.webhook_mtls.WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----', ), )
],
next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9'
)
@@ -59,7 +63,11 @@ def make_instance(self, include_optional) -> WebhookPaginatedResponse:
events = ["transaction.created","transaction.status.updated"],
status = 'ENABLED',
created_at = 1625126400000,
- updated_at = 1625126400000, )
+ updated_at = 1625126400000,
+ mtls = fireblocks.models.webhook_mtls.WebhookMtls(
+ client_signed_cert = '-----BEGIN CERTIFICATE-----
+...
+-----END CERTIFICATE-----', ), )
],
)
"""
diff --git a/test/test_webhooks_v2_api.py b/test/test_webhooks_v2_api.py
index 405edc43..81081906 100644
--- a/test/test_webhooks_v2_api.py
+++ b/test/test_webhooks_v2_api.py
@@ -48,6 +48,13 @@ def test_get_metrics(self) -> None:
"""
pass
+ def test_get_mtls_csr(self) -> None:
+ """Test case for get_mtls_csr
+
+ Get mTLS CSR
+ """
+ pass
+
def test_get_notification(self) -> None:
"""Test case for get_notification