From e5d5fb96aea75b7b33e3b7fa8f39797dbaa00c7a Mon Sep 17 00:00:00 2001 From: Alexandru Popenta Date: Tue, 3 Dec 2024 17:14:57 +0200 Subject: [PATCH 1/2] add methods to create factories from entrypoint --- multiversx_sdk/entrypoints/entrypoints.py | 32 +++++++++++++++++++ .../entrypoints/entrypoints_test.py | 12 +++++++ 2 files changed, 44 insertions(+) diff --git a/multiversx_sdk/entrypoints/entrypoints.py b/multiversx_sdk/entrypoints/entrypoints.py index 75cb74d6..53576ff1 100644 --- a/multiversx_sdk/entrypoints/entrypoints.py +++ b/multiversx_sdk/entrypoints/entrypoints.py @@ -2,11 +2,17 @@ from multiversx_sdk.abi.abi import Abi from multiversx_sdk.account_management import AccountController +from multiversx_sdk.account_management.account_transactions_factory import \ + AccountTransactionsFactory from multiversx_sdk.accounts import Account from multiversx_sdk.core import (Address, Message, MessageComputer, Transaction, TransactionComputer, TransactionOnNetwork) +from multiversx_sdk.core.transactions_factory_config import \ + TransactionsFactoryConfig from multiversx_sdk.delegation import DelegationController +from multiversx_sdk.delegation.delegation_transactions_factory import \ + DelegationTransactionsFactory from multiversx_sdk.entrypoints.config import (DevnetEntrypointConfig, MainnetEntrypointConfig, TestnetEntrypointConfig) @@ -14,10 +20,18 @@ from multiversx_sdk.network_providers import (ApiNetworkProvider, ProxyNetworkProvider) from multiversx_sdk.relayed.relayed_controller import RelayedController +from multiversx_sdk.relayed.relayed_transactions_factory import \ + RelayedTransactionsFactory from multiversx_sdk.smart_contracts.smart_contract_controller import \ SmartContractController +from multiversx_sdk.smart_contracts.smart_contract_transactions_factory import \ + SmartContractTransactionsFactory from multiversx_sdk.token_management.token_management_controller import \ TokenManagementController +from multiversx_sdk.token_management.token_management_transactions_factory import \ + TokenManagementTransactionsFactory +from multiversx_sdk.transfers.transfer_transactions_factory import \ + TransferTransactionsFactory from multiversx_sdk.transfers.transfers_controller import TransfersController from multiversx_sdk.wallet.user_verifer import UserVerifier @@ -94,21 +108,39 @@ def create_network_provider(self) -> Union[ApiNetworkProvider, ProxyNetworkProvi def create_delegation_controller(self) -> DelegationController: return DelegationController(self.chain_id, self.network_provider) + def create_delegation_factory(self) -> DelegationTransactionsFactory: + return DelegationTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) + def create_account_controller(self) -> AccountController: return AccountController(self.chain_id) + def create_account_factory(self) -> AccountTransactionsFactory: + return AccountTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) + def create_relayed_controller(self) -> RelayedController: return RelayedController(self.chain_id) + def create_relayed_factory(self) -> RelayedTransactionsFactory: + return RelayedTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) + def create_smart_contract_controller(self, abi: Optional[Abi] = None) -> SmartContractController: return SmartContractController(self.chain_id, self.network_provider, abi) + def create_smart_contract_factory(self, abi: Optional[Abi] = None) -> SmartContractTransactionsFactory: + return SmartContractTransactionsFactory(config=TransactionsFactoryConfig(self.chain_id), abi=abi) + def create_token_management_controller(self) -> TokenManagementController: return TokenManagementController(self.chain_id, self.network_provider) + def create_token_management_factory(self) -> TokenManagementTransactionsFactory: + return TokenManagementTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) + def create_transfers_controller(self) -> TransfersController: return TransfersController(self.chain_id) + def create_transfers_factory(self) -> TransferTransactionsFactory: + return TransferTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) + class TestnetEntrypoint(NetworkEntrypoint): def __init__(self, url: Optional[str] = None, kind: Optional[str] = None) -> None: diff --git a/multiversx_sdk/entrypoints/entrypoints_test.py b/multiversx_sdk/entrypoints/entrypoints_test.py index c56090d5..aa1ac265 100644 --- a/multiversx_sdk/entrypoints/entrypoints_test.py +++ b/multiversx_sdk/entrypoints/entrypoints_test.py @@ -74,3 +74,15 @@ def test_contract_flow(self): assert len(query_result) == 1 assert query_result[0] == 7 + + def test_get_account_factory_and_create_transaction(self): + sender = Account.new_from_pem(self.alice_pem) + sender.nonce = self.entrypoint.recall_account_nonce(sender.address) + + factory = self.entrypoint.create_account_factory() + transaction = factory.create_transaction_for_saving_key_value( + sender=sender.address, + key_value_pairs={ "key".encode(): "pair".encode()} + ) + + assert transaction.chain_id == "D" From 39f34a3ce35cb723ac5d793355b8099da2653615 Mon Sep 17 00:00:00 2001 From: Alexandru Popenta Date: Wed, 4 Dec 2024 13:42:07 +0200 Subject: [PATCH 2/2] rename methods to create transactions factories from entrypoints --- multiversx_sdk/entrypoints/entrypoints.py | 12 ++++++------ multiversx_sdk/entrypoints/entrypoints_test.py | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/multiversx_sdk/entrypoints/entrypoints.py b/multiversx_sdk/entrypoints/entrypoints.py index 53576ff1..03d2347d 100644 --- a/multiversx_sdk/entrypoints/entrypoints.py +++ b/multiversx_sdk/entrypoints/entrypoints.py @@ -108,37 +108,37 @@ def create_network_provider(self) -> Union[ApiNetworkProvider, ProxyNetworkProvi def create_delegation_controller(self) -> DelegationController: return DelegationController(self.chain_id, self.network_provider) - def create_delegation_factory(self) -> DelegationTransactionsFactory: + def create_delegation_transactions_factory(self) -> DelegationTransactionsFactory: return DelegationTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) def create_account_controller(self) -> AccountController: return AccountController(self.chain_id) - def create_account_factory(self) -> AccountTransactionsFactory: + def create_account_transactions_factory(self) -> AccountTransactionsFactory: return AccountTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) def create_relayed_controller(self) -> RelayedController: return RelayedController(self.chain_id) - def create_relayed_factory(self) -> RelayedTransactionsFactory: + def create_relayed_transactions_factory(self) -> RelayedTransactionsFactory: return RelayedTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) def create_smart_contract_controller(self, abi: Optional[Abi] = None) -> SmartContractController: return SmartContractController(self.chain_id, self.network_provider, abi) - def create_smart_contract_factory(self, abi: Optional[Abi] = None) -> SmartContractTransactionsFactory: + def create_smart_contract_transactions_factory(self, abi: Optional[Abi] = None) -> SmartContractTransactionsFactory: return SmartContractTransactionsFactory(config=TransactionsFactoryConfig(self.chain_id), abi=abi) def create_token_management_controller(self) -> TokenManagementController: return TokenManagementController(self.chain_id, self.network_provider) - def create_token_management_factory(self) -> TokenManagementTransactionsFactory: + def create_token_management_transactions_factory(self) -> TokenManagementTransactionsFactory: return TokenManagementTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) def create_transfers_controller(self) -> TransfersController: return TransfersController(self.chain_id) - def create_transfers_factory(self) -> TransferTransactionsFactory: + def create_transfers_transactions_factory(self) -> TransferTransactionsFactory: return TransferTransactionsFactory(TransactionsFactoryConfig(self.chain_id)) diff --git a/multiversx_sdk/entrypoints/entrypoints_test.py b/multiversx_sdk/entrypoints/entrypoints_test.py index aa1ac265..3a5f41b2 100644 --- a/multiversx_sdk/entrypoints/entrypoints_test.py +++ b/multiversx_sdk/entrypoints/entrypoints_test.py @@ -79,10 +79,10 @@ def test_get_account_factory_and_create_transaction(self): sender = Account.new_from_pem(self.alice_pem) sender.nonce = self.entrypoint.recall_account_nonce(sender.address) - factory = self.entrypoint.create_account_factory() + factory = self.entrypoint.create_account_transactions_factory() transaction = factory.create_transaction_for_saving_key_value( sender=sender.address, - key_value_pairs={ "key".encode(): "pair".encode()} + key_value_pairs={"key".encode(): "pair".encode()} ) assert transaction.chain_id == "D"