diff --git a/multiversx_sdk/core/transaction_status.py b/multiversx_sdk/core/transaction_status.py index 99d9fc93..4bdc07b3 100644 --- a/multiversx_sdk/core/transaction_status.py +++ b/multiversx_sdk/core/transaction_status.py @@ -7,12 +7,14 @@ class TransactionStatus: is_completed: bool is_successful: bool is_failed: bool + is_not_executable_in_block: bool def __init__(self, status: str): self.status = status.lower() self.is_completed = self._is_status_completed() self.is_successful = self._is_status_successful() self.is_failed = self._is_status_failed() + self.is_not_executable_in_block = self._is_status_not_executable_in_block() def _is_status_completed(self) -> bool: return self._is_status_successful() or self._is_status_failed() @@ -26,5 +28,7 @@ def _is_status_failed(self) -> bool: or self.status == "failed" or self.status == "unsuccessful" or self.status == "invalid" - or self.status == "not-executable-in-block" ) + + def _is_status_not_executable_in_block(self) -> bool: + return self.status == "not-executable-in-block" diff --git a/multiversx_sdk/delegation/delegation_controller.py b/multiversx_sdk/delegation/delegation_controller.py index 8af44fee..a24414ef 100644 --- a/multiversx_sdk/delegation/delegation_controller.py +++ b/multiversx_sdk/delegation/delegation_controller.py @@ -27,7 +27,11 @@ # fmt: off class INetworkProvider(Protocol): - def await_transaction_completed(self, transaction_hash: Union[str, bytes], options: Optional[AwaitingOptions] = None) -> TransactionOnNetwork: + def await_transaction_completed( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> TransactionOnNetwork: ... # fmt: on @@ -80,9 +84,11 @@ def parse_create_new_delegation_contract( return self.parser.parse_create_new_delegation_contract(transaction_on_network) def await_completed_create_new_delegation_contract( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[CreateNewDelegationContractOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_create_new_delegation_contract(transaction) def create_transaction_for_adding_nodes( @@ -476,8 +482,12 @@ def create_transaction_for_delegating( def parse_delegate(self, transaction_on_network: TransactionOnNetwork) -> list[DelegateOutcome]: return self.parser.parse_delegate(transaction_on_network) - def await_completed_delegate(self, transaction_hash: Union[str, bytes]) -> list[DelegateOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_delegate( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[DelegateOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_delegate(transaction) def create_transaction_for_claiming_rewards( @@ -508,8 +518,12 @@ def create_transaction_for_claiming_rewards( def parse_claim_rewards(self, transaction_on_network: TransactionOnNetwork) -> list[ClaimRewardsOutcome]: return self.parser.parse_claim_rewards(transaction_on_network) - def await_completed_claim_rewards(self, transaction_hash: Union[str, bytes]) -> list[ClaimRewardsOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_claim_rewards( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[ClaimRewardsOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_claim_rewards(transaction) def create_transaction_for_redelegating_rewards( @@ -540,8 +554,12 @@ def create_transaction_for_redelegating_rewards( def parse_redelegate_rewards(self, transaction_on_network: TransactionOnNetwork) -> list[RedelegateRewardsOutcome]: return self.parser.parse_redelegate_rewards(transaction_on_network) - def await_completed_redelegate_rewards(self, transaction_hash: Union[str, bytes]) -> list[RedelegateRewardsOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_redelegate_rewards( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[RedelegateRewardsOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_redelegate_rewards(transaction) def create_transaction_for_undelegating( @@ -575,8 +593,12 @@ def create_transaction_for_undelegating( def parse_undelegate(self, transaction_on_network: TransactionOnNetwork) -> list[UndelegateOutcome]: return self.parser.parse_undelegate(transaction_on_network) - def await_completed_undelegate(self, transaction_hash: Union[str, bytes]) -> list[UndelegateOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_undelegate( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[UndelegateOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_undelegate(transaction) def create_transaction_for_withdrawing( diff --git a/multiversx_sdk/entrypoints/entrypoints.py b/multiversx_sdk/entrypoints/entrypoints.py index 5d79bdc4..9a32e9f4 100644 --- a/multiversx_sdk/entrypoints/entrypoints.py +++ b/multiversx_sdk/entrypoints/entrypoints.py @@ -37,6 +37,7 @@ ) from multiversx_sdk.network_providers import ApiNetworkProvider, ProxyNetworkProvider from multiversx_sdk.network_providers.interface import INetworkProvider +from multiversx_sdk.network_providers.resources import AwaitingOptions from multiversx_sdk.smart_contracts.smart_contract_controller import ( SmartContractController, ) @@ -139,8 +140,12 @@ def send_transactions(self, transactions: list[Transaction]) -> tuple[int, list[ def send_transaction(self, transaction: Transaction) -> bytes: return self.network_provider.send_transaction(transaction) - def await_transaction_completed(self, tx_hash: Union[str, bytes]) -> TransactionOnNetwork: - return self.network_provider.await_transaction_completed(tx_hash) + def await_transaction_completed( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> TransactionOnNetwork: + return self.network_provider.await_transaction_completed(tx_hash, options) def get_transaction(self, tx_hash: Union[str, bytes]) -> TransactionOnNetwork: return self.network_provider.get_transaction(tx_hash) diff --git a/multiversx_sdk/governance/governance_controller.py b/multiversx_sdk/governance/governance_controller.py index f0e7db76..35e918d8 100644 --- a/multiversx_sdk/governance/governance_controller.py +++ b/multiversx_sdk/governance/governance_controller.py @@ -100,8 +100,12 @@ def create_transaction_for_new_proposal( def parse_new_proposal(self, transaction_on_network: TransactionOnNetwork) -> list[NewProposalOutcome]: return self._parser.parse_new_proposal(transaction_on_network) - def await_completed_new_proposal(self, tx_hash: Union[str, bytes]) -> list[NewProposalOutcome]: - transaction = self._network_provider.await_transaction_completed(tx_hash) + def await_completed_new_proposal( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[NewProposalOutcome]: + transaction = self._network_provider.await_transaction_completed(tx_hash, options) return self.parse_new_proposal(transaction) def create_transaction_for_voting( @@ -132,8 +136,12 @@ def create_transaction_for_voting( def parse_vote(self, transaction_on_network: TransactionOnNetwork) -> list[VoteOutcome]: return self._parser.parse_vote(transaction_on_network) - def await_completed_vote(self, tx_hash: Union[str, bytes]) -> list[VoteOutcome]: - transaction = self._network_provider.await_transaction_completed(tx_hash) + def await_completed_vote( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[VoteOutcome]: + transaction = self._network_provider.await_transaction_completed(tx_hash, options) return self.parse_vote(transaction) def create_transaction_for_closing_proposal( @@ -163,8 +171,12 @@ def create_transaction_for_closing_proposal( def parse_close_proposal(self, transaction_on_network: TransactionOnNetwork) -> list[CloseProposalOutcome]: return self._parser.parse_close_proposal(transaction_on_network) - def await_completed_close_proposal(self, tx_hash: Union[str, bytes]) -> list[CloseProposalOutcome]: - transaction = self._network_provider.await_transaction_completed(tx_hash) + def await_completed_close_proposal( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[CloseProposalOutcome]: + transaction = self._network_provider.await_transaction_completed(tx_hash, options) return self.parse_close_proposal(transaction) def create_transaction_for_clearing_ended_proposals( diff --git a/multiversx_sdk/multisig/multisig_controller.py b/multiversx_sdk/multisig/multisig_controller.py index 774618b6..688bc81d 100644 --- a/multiversx_sdk/multisig/multisig_controller.py +++ b/multiversx_sdk/multisig/multisig_controller.py @@ -118,8 +118,12 @@ def create_transaction_for_deploy( def parse_deploy(self, transaction_on_network: TransactionOnNetwork) -> SmartContractDeployOutcome: return self._parser.parse_deploy(transaction_on_network) - def await_completed_deploy(self, tx_hash: Union[str, bytes]) -> SmartContractDeployOutcome: - transaction = self._network_provider.await_transaction_completed(tx_hash) + def await_completed_deploy( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> SmartContractDeployOutcome: + transaction = self._network_provider.await_transaction_completed(tx_hash, options) return self.parse_deploy(transaction) def create_transaction_for_deposit( @@ -966,15 +970,23 @@ def get_action_valid_signer_count(self, contract: Address, action_id: int) -> in def parse_propose_action(self, transaction_on_network: TransactionOnNetwork) -> int: return self._parser.parse_propose_action(transaction_on_network) - def await_completed_execute_propose_any(self, tx_hash: Union[str, bytes]) -> int: - transaction = self._network_provider.await_transaction_completed(tx_hash) + def await_completed_execute_propose_any( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> int: + transaction = self._network_provider.await_transaction_completed(tx_hash, options) return self.parse_propose_action(transaction) def parse_perform_action(self, transaction_on_network: TransactionOnNetwork) -> Optional[Address]: return self._parser.parse_perform_action(transaction_on_network) - def await_completed_perform_action(self, tx_hash: Union[str, bytes]) -> Optional[Address]: - transaction = self._network_provider.await_transaction_completed(tx_hash) + def await_completed_perform_action( + self, + tx_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> Optional[Address]: + transaction = self._network_provider.await_transaction_completed(tx_hash, options) return self.parse_perform_action(transaction) def create_transaction_for_execute( diff --git a/multiversx_sdk/network_providers/transaction_awaiter_test.py b/multiversx_sdk/network_providers/transaction_awaiter_test.py index bfd9d17c..083cece6 100644 --- a/multiversx_sdk/network_providers/transaction_awaiter_test.py +++ b/multiversx_sdk/network_providers/transaction_awaiter_test.py @@ -64,12 +64,11 @@ def test_await_status_not_executable(self): TransactionStatus("pending"), TimelinePointWait(40), TransactionStatus("not-executable-in-block"), - TimelinePointMarkCompleted(), ], ) - tx_from_network = self.watcher.await_completed(tx_hash) + tx_from_network = self.watcher.await_on_condition(tx_hash, lambda tx: tx.status.is_not_executable_in_block) - assert tx_from_network.status.is_failed + assert tx_from_network.status.is_not_executable_in_block @pytest.mark.networkInteraction def test_on_network(self): diff --git a/multiversx_sdk/smart_contracts/smart_contract_controller.py b/multiversx_sdk/smart_contracts/smart_contract_controller.py index c0b7880a..7a090cf0 100644 --- a/multiversx_sdk/smart_contracts/smart_contract_controller.py +++ b/multiversx_sdk/smart_contracts/smart_contract_controller.py @@ -103,8 +103,12 @@ def create_transaction_for_deploy( def parse_deploy(self, transaction_on_network: TransactionOnNetwork) -> SmartContractDeployOutcome: return self.parser.parse_deploy(transaction_on_network) - def await_completed_deploy(self, transaction_hash: Union[str, bytes]) -> SmartContractDeployOutcome: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_deploy( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> SmartContractDeployOutcome: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_deploy(transaction) def create_transaction_for_upgrade( @@ -190,8 +194,12 @@ def parse_execute( ) -> ParsedSmartContractCallOutcome: return self.parser.parse_execute(transaction_on_network, function) - def await_completed_execute(self, transaction_hash: Union[str, bytes]) -> ParsedSmartContractCallOutcome: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_execute( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> ParsedSmartContractCallOutcome: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_execute(transaction, transaction.function) def query( diff --git a/multiversx_sdk/token_management/token_management_controller.py b/multiversx_sdk/token_management/token_management_controller.py index a16c1012..2e500d46 100644 --- a/multiversx_sdk/token_management/token_management_controller.py +++ b/multiversx_sdk/token_management/token_management_controller.py @@ -106,8 +106,12 @@ def create_transaction_for_issuing_fungible( def parse_issue_fungible(self, transaction_on_network: TransactionOnNetwork) -> list[IssueFungibleOutcome]: return self.parser.parse_issue_fungible(transaction_on_network) - def await_completed_issue_fungible(self, transaction_hash: Union[str, bytes]) -> list[IssueFungibleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_issue_fungible( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[IssueFungibleOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_issue_fungible(transaction) def create_transaction_for_issuing_semi_fungible( @@ -156,9 +160,11 @@ def parse_issue_semi_fungible(self, transaction_on_network: TransactionOnNetwork return self.parser.parse_issue_semi_fungible(transaction_on_network) def await_completed_issue_semi_fungible( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[IssueSemiFungibleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_issue_semi_fungible(transaction) def create_transaction_for_issuing_non_fungible( @@ -206,8 +212,12 @@ def create_transaction_for_issuing_non_fungible( def parse_issue_non_fungible(self, transaction_on_network: TransactionOnNetwork) -> list[IssueNonFungibleOutcome]: return self.parser.parse_issue_non_fungible(transaction_on_network) - def await_completed_issue_non_fungible(self, transaction_hash: Union[str, bytes]) -> list[IssueNonFungibleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_issue_non_fungible( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[IssueNonFungibleOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_issue_non_fungible(transaction) def create_transaction_for_registering_meta_esdt( @@ -257,8 +267,12 @@ def create_transaction_for_registering_meta_esdt( def parse_register_meta_esdt(self, transaction_on_network: TransactionOnNetwork) -> list[RegisterMetaEsdtOutcome]: return self.parser.parse_register_meta_esdt(transaction_on_network) - def await_completed_register_meta_esdt(self, transaction_hash: Union[str, bytes]) -> list[RegisterMetaEsdtOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_register_meta_esdt( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[RegisterMetaEsdtOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_register_meta_esdt(transaction) def create_transaction_for_registering_and_setting_roles( @@ -299,9 +313,11 @@ def parse_register_and_set_all_roles( return self.parser.parse_register_and_set_all_roles(transaction_on_network) def await_completed_register_and_set_all_roles( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[RegisterAndSetAllRolesOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_register_and_set_all_roles(transaction) def create_transaction_for_setting_burn_role_globally( @@ -332,8 +348,12 @@ def create_transaction_for_setting_burn_role_globally( def parse_set_burn_role_globally(self, transaction_on_network: TransactionOnNetwork): return self.parser.parse_set_burn_role_globally(transaction_on_network) - def await_completed_set_burn_role_globally(self, transaction_hash: Union[str, bytes]): - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_set_burn_role_globally( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ): + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_set_burn_role_globally(transaction) def create_transaction_for_unsetting_burn_role_globally( @@ -364,8 +384,12 @@ def create_transaction_for_unsetting_burn_role_globally( def parse_unset_burn_role_globally(self, transaction_on_network: TransactionOnNetwork): return self.parser.parse_unset_burn_role_globally(transaction_on_network) - def await_completed_unset_burn_role_globally(self, transaction_hash: Union[str, bytes]): - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_unset_burn_role_globally( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ): + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_unset_burn_role_globally(transaction) def create_transaction_for_setting_special_role_on_fungible_token( @@ -408,9 +432,11 @@ def parse_set_special_role_on_fungible_token( return self.parser.parse_set_special_role(transaction_on_network) def await_completed_set_special_role_on_fungible_token( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[SetSpecialRoleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_set_special_role_on_fungible_token(transaction) def create_transaction_for_unsetting_special_role_on_fungible_token( @@ -499,9 +525,11 @@ def parse_set_special_role_on_semi_fungible_token( return self.parser.parse_set_special_role(transaction_on_network) def await_completed_set_special_role_on_semi_fungible_token( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[SetSpecialRoleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_set_special_role_on_semi_fungible_token(transaction) def create_transaction_for_unsetting_special_role_on_semi_fungible_token( @@ -589,9 +617,11 @@ def parse_set_special_role_on_meta_esdt( return self.parser.parse_set_special_role(transaction_on_network) def await_completed_set_special_role_on_meta_esdt( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[SetSpecialRoleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_set_special_role_on_meta_esdt(transaction) def create_transaction_for_unsetting_special_role_on_meta_esdt( @@ -682,9 +712,11 @@ def parse_set_special_role_on_non_fungible_token( return self.parser.parse_set_special_role(transaction_on_network) def await_completed_set_special_role_on_non_fungible_token( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[SetSpecialRoleOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_set_special_role_on_non_fungible_token(transaction) def create_transaction_for_unsetting_special_role_on_non_fungible_token( @@ -774,8 +806,12 @@ def create_transaction_for_creating_nft( def parse_create_nft(self, transaction_on_network: TransactionOnNetwork) -> list[NFTCreateOutcome]: return self.parser.parse_nft_create(transaction_on_network) - def await_completed_create_nft(self, transaction_hash: Union[str, bytes]) -> list[NFTCreateOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_create_nft( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[NFTCreateOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_create_nft(transaction) def create_transaction_for_pausing( @@ -806,8 +842,12 @@ def create_transaction_for_pausing( def parse_pause(self, transaction_on_network: TransactionOnNetwork) -> list[PauseOutcome]: return self.parser.parse_pause(transaction_on_network) - def await_completed_pause(self, transaction_hash: Union[str, bytes]) -> list[PauseOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_pause( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[PauseOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_pause(transaction) def create_transaction_for_unpausing( @@ -838,8 +878,12 @@ def create_transaction_for_unpausing( def parse_unpause(self, transaction_on_network: TransactionOnNetwork) -> list[UnPauseOutcome]: return self.parser.parse_unpause(transaction_on_network) - def await_completed_unpause(self, transaction_hash: Union[str, bytes]) -> list[UnPauseOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_unpause( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[UnPauseOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_unpause(transaction) def create_transaction_for_freezing( @@ -871,8 +915,12 @@ def create_transaction_for_freezing( def parse_freeze(self, transaction_on_network: TransactionOnNetwork) -> list[FreezeOutcome]: return self.parser.parse_freeze(transaction_on_network) - def await_completed_freeze(self, transaction_hash: Union[str, bytes]) -> list[FreezeOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_freeze( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[FreezeOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_freeze(transaction) def create_transaction_for_unfreezing( @@ -904,8 +952,12 @@ def create_transaction_for_unfreezing( def parse_unfreeze(self, transaction_on_network: TransactionOnNetwork) -> list[UnFreezeOutcome]: return self.parser.parse_unfreeze(transaction_on_network) - def await_completed_unfreeze(self, transaction_hash: Union[str, bytes]) -> list[UnFreezeOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_unfreeze( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[UnFreezeOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_unfreeze(transaction) def create_transaction_for_wiping( @@ -937,8 +989,12 @@ def create_transaction_for_wiping( def parse_wipe(self, transaction_on_network: TransactionOnNetwork) -> list[WipeOutcome]: return self.parser.parse_wipe(transaction_on_network) - def await_completed_wipe(self, transaction_hash: Union[str, bytes]) -> list[WipeOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_wipe( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[WipeOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_wipe(transaction) def create_transaction_for_local_minting( @@ -972,8 +1028,12 @@ def create_transaction_for_local_minting( def parse_local_mint(self, transaction_on_network: TransactionOnNetwork) -> list[MintOutcome]: return self.parser.parse_local_mint(transaction_on_network) - def await_completed_local_mint(self, transaction_hash: Union[str, bytes]) -> list[MintOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_local_mint( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[MintOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_local_mint(transaction) def create_transaction_for_local_burning( @@ -1007,8 +1067,12 @@ def create_transaction_for_local_burning( def parse_local_burn(self, transaction_on_network: TransactionOnNetwork) -> list[BurnOutcome]: return self.parser.parse_local_burn(transaction_on_network) - def await_completed_local_burn(self, transaction_hash: Union[str, bytes]) -> list[BurnOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_local_burn( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[BurnOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_local_burn(transaction) def create_transaction_for_updating_attributes( @@ -1044,8 +1108,12 @@ def create_transaction_for_updating_attributes( def parse_update_attributes(self, transaction_on_network: TransactionOnNetwork) -> list[UpdateAttributesOutcome]: return self.parser.parse_update_attributes(transaction_on_network) - def await_completed_update_attributes(self, transaction_hash: Union[str, bytes]) -> list[UpdateAttributesOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_update_attributes( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[UpdateAttributesOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_update_attributes(transaction) def create_transaction_for_adding_quantity( @@ -1081,8 +1149,12 @@ def create_transaction_for_adding_quantity( def parse_add_quantity(self, transaction_on_network: TransactionOnNetwork) -> list[AddQuantityOutcome]: return self.parser.parse_add_quantity(transaction_on_network) - def await_completed_add_quantity(self, transaction_hash: Union[str, bytes]) -> list[AddQuantityOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_add_quantity( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[AddQuantityOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_add_quantity(transaction) def create_transaction_for_burning_quantity( @@ -1118,8 +1190,12 @@ def create_transaction_for_burning_quantity( def parse_burn_quantity(self, transaction_on_network: TransactionOnNetwork) -> list[BurnQuantityOutcome]: return self.parser.parse_burn_quantity(transaction_on_network) - def await_completed_burn_quantity(self, transaction_hash: Union[str, bytes]) -> list[BurnQuantityOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_burn_quantity( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[BurnQuantityOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_burn_quantity(transaction) def create_transaction_for_modifying_royalties( @@ -1155,8 +1231,12 @@ def create_transaction_for_modifying_royalties( def parse_modify_royalties(self, transaction_on_network: TransactionOnNetwork) -> list[ModifyRoyaltiesOutcome]: return self.parser.parse_modify_royalties(transaction_on_network) - def await_completed_modify_royalties(self, transaction_hash: Union[str, bytes]) -> list[ModifyRoyaltiesOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_modify_royalties( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[ModifyRoyaltiesOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_modify_royalties(transaction) def create_transaction_for_setting_new_uris( @@ -1192,8 +1272,12 @@ def create_transaction_for_setting_new_uris( def parse_set_new_uris(self, transaction_on_network: TransactionOnNetwork) -> list[SetNewUrisOutcome]: return self.parser.parse_set_new_uris(transaction_on_network) - def await_completed_set_new_uris(self, transaction_hash: Union[str, bytes]) -> list[SetNewUrisOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_set_new_uris( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[SetNewUrisOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_set_new_uris(transaction) def create_transaction_for_modifying_creator( @@ -1225,8 +1309,12 @@ def create_transaction_for_modifying_creator( def parse_modify_creator(self, transaction_on_network: TransactionOnNetwork) -> list[ModifyCreatorOutcome]: return self.parser.parse_modify_creator(transaction_on_network) - def await_completed_modify_creator(self, transaction_hash: Union[str, bytes]) -> list[ModifyCreatorOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_modify_creator( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[ModifyCreatorOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_modify_creator(transaction) def create_transaction_for_updating_metadata( @@ -1270,8 +1358,12 @@ def create_transaction_for_updating_metadata( def parse_update_metadata(self, transaction_on_network: TransactionOnNetwork) -> list[UpdateMetadataOutcome]: return self.parser.parse_update_metadata(transaction_on_network) - def await_completed_update_metadata(self, transaction_hash: Union[str, bytes]) -> list[UpdateMetadataOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_update_metadata( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[UpdateMetadataOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_update_metadata(transaction) def create_transaction_for_nft_metadata_recreate( @@ -1315,8 +1407,12 @@ def create_transaction_for_nft_metadata_recreate( def parse_metadata_recreate(self, transaction_on_network: TransactionOnNetwork) -> list[MetadataRecreateOutcome]: return self.parser.parse_metadata_recreate(transaction_on_network) - def await_completed_metadata_recreate(self, transaction_hash: Union[str, bytes]) -> list[MetadataRecreateOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_metadata_recreate( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> list[MetadataRecreateOutcome]: + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_metadata_recreate(transaction) def create_transaction_for_changing_token_to_dynamic( @@ -1352,9 +1448,11 @@ def parse_change_token_to_dynamic( return self.parser.parse_change_token_to_dynamic(transaction_on_network) def await_completed_change_token_to_dynamic( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[ChangeTokenToDynamicOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_change_token_to_dynamic(transaction) def create_transaction_for_updating_token_id( @@ -1383,8 +1481,12 @@ def create_transaction_for_updating_token_id( return transaction - def await_completed_update_token_id(self, transaction_hash: Union[str, bytes]) -> TransactionOnNetwork: - return self.network_provider.await_transaction_completed(transaction_hash) + def await_completed_update_token_id( + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, + ) -> TransactionOnNetwork: + return self.network_provider.await_transaction_completed(transaction_hash, options) def create_transaction_for_registering_dynamic_token( self, @@ -1424,9 +1526,11 @@ def parse_register_dynamic_token( return self.parser.parse_register_dynamic_token(transaction_on_network) def await_completed_register_dynamic_token( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[RegisterDynamicOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_register_dynamic_token(transaction) def create_transaction_for_registering_dynamic_and_setting_roles( @@ -1467,9 +1571,11 @@ def parse_register_dynamic_token_and_setting_roles( return self.parser.parse_register_dynamic_and_setting_roles(transaction_on_network) def await_completed_register_dynamic_token_and_setting_roles( - self, transaction_hash: Union[str, bytes] + self, + transaction_hash: Union[str, bytes], + options: Optional[AwaitingOptions] = None, ) -> list[RegisterDynamicOutcome]: - transaction = self.network_provider.await_transaction_completed(transaction_hash) + transaction = self.network_provider.await_transaction_completed(transaction_hash, options) return self.parse_register_dynamic_token_and_setting_roles(transaction) def create_transaction_for_transferring_ownership(