Skip to content

Commit

Permalink
Merge pull request #121 from multiversx/less-controller-interfaces
Browse files Browse the repository at this point in the history
Move "INetworkProvider" and "IAbi" to controllers/interfaces.py
  • Loading branch information
andreibancioiu authored Oct 28, 2024
2 parents b4e1e81 + f51372c commit 5b47645
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 47 deletions.
10 changes: 2 additions & 8 deletions multiversx_sdk/controllers/delegation_controller.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import List, Optional, Protocol, Sequence, Union
from typing import List, Sequence

from multiversx_sdk.controllers.interfaces import IAccount
from multiversx_sdk.controllers.interfaces import IAccount, INetworkProvider
from multiversx_sdk.core.interfaces import IAddress, IValidatorPublicKey
from multiversx_sdk.core.transaction import Transaction
from multiversx_sdk.core.transaction_computer import TransactionComputer
Expand All @@ -9,12 +9,6 @@
DelegationTransactionsFactory, TransactionsFactoryConfig)
from multiversx_sdk.core.transactions_outcome_parsers.delegation_transactions_outcome_parser import (
CreateNewDelegationContractOutcome, DelegationTransactionsOutcomeParser)
from multiversx_sdk.network_providers.resources import AwaitingOptions


class INetworkProvider(Protocol):
def await_transaction_completed(self, tx_hash: Union[str, bytes], options: Optional[AwaitingOptions] = None) -> TransactionOnNetwork:
...


class DelegationController:
Expand Down
28 changes: 27 additions & 1 deletion multiversx_sdk/controllers/interfaces.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from typing import Protocol
from typing import Any, List, Optional, Protocol, Union

from multiversx_sdk.core.interfaces import IAddress
from multiversx_sdk.core.smart_contract_query import (
SmartContractQuery, SmartContractQueryResponse)
from multiversx_sdk.core.transaction_on_network import TransactionOnNetwork
from multiversx_sdk.network_providers.resources import AwaitingOptions


class IAccount(Protocol):
Expand All @@ -10,3 +14,25 @@ def address(self) -> IAddress:

def sign(self, data: bytes) -> bytes:
...


class INetworkProvider(Protocol):
def query_contract(self, query: SmartContractQuery) -> SmartContractQueryResponse:
...

def await_transaction_completed(self, tx_hash: Union[str, bytes], options: Optional[AwaitingOptions] = None) -> TransactionOnNetwork:
...


class IAbi(Protocol):
def encode_endpoint_input_parameters(self, endpoint_name: str, values: List[Any]) -> List[bytes]:
...

def encode_constructor_input_parameters(self, values: List[Any]) -> List[bytes]:
...

def encode_upgrade_constructor_input_parameters(self, values: List[Any]) -> List[bytes]:
...

def decode_endpoint_output_parameters(self, endpoint_name: str, encoded_values: List[bytes]) -> List[Any]:
...
3 changes: 0 additions & 3 deletions multiversx_sdk/controllers/relayed_controller.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from typing import List

from multiversx_sdk.controllers.interfaces import IAccount
from multiversx_sdk.core.interfaces import ITransaction
from multiversx_sdk.core.transaction import Transaction
Expand Down Expand Up @@ -44,4 +42,3 @@ def create_relayed_v2_transaction(self,
transaction.signature = sender.sign(self.tx_computer.compute_bytes_for_signing(transaction))

return transaction

30 changes: 3 additions & 27 deletions multiversx_sdk/controllers/smart_contract_controller.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from pathlib import Path
from typing import Any, List, Optional, Protocol, Sequence, Union
from typing import Any, List, Optional, Sequence, Union

from multiversx_sdk.controllers.interfaces import IAccount
from multiversx_sdk.controllers.interfaces import (IAbi, IAccount,
INetworkProvider)
from multiversx_sdk.core.interfaces import IAddress
from multiversx_sdk.core.smart_contract_queries_controller import \
SmartContractQueriesController
from multiversx_sdk.core.smart_contract_query import (
SmartContractQuery, SmartContractQueryResponse)
from multiversx_sdk.core.tokens import TokenTransfer
from multiversx_sdk.core.transaction import Transaction
from multiversx_sdk.core.transaction_computer import TransactionComputer
Expand All @@ -15,29 +14,6 @@
SmartContractTransactionsFactory, TransactionsFactoryConfig)
from multiversx_sdk.core.transactions_outcome_parsers import (
SmartContractDeployOutcome, SmartContractTransactionsOutcomeParser)
from multiversx_sdk.network_providers.resources import AwaitingOptions


class INetworkProvider(Protocol):
def query_contract(self, query: SmartContractQuery) -> SmartContractQueryResponse:
...

def await_transaction_completed(self, tx_hash: Union[str, bytes], options: Optional[AwaitingOptions] = None) -> TransactionOnNetwork:
...


class IAbi(Protocol):
def encode_endpoint_input_parameters(self, endpoint_name: str, values: List[Any]) -> List[bytes]:
...

def encode_constructor_input_parameters(self, values: List[Any]) -> List[bytes]:
...

def encode_upgrade_constructor_input_parameters(self, values: List[Any]) -> List[bytes]:
...

def decode_endpoint_output_parameters(self, endpoint_name: str, encoded_values: List[bytes]) -> List[Any]:
...


class SmartContractController:
Expand Down
10 changes: 2 additions & 8 deletions multiversx_sdk/controllers/token_management_controller.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import List, Optional, Protocol, Union
from typing import List

from multiversx_sdk.controllers.interfaces import IAccount
from multiversx_sdk.controllers.interfaces import IAccount, INetworkProvider
from multiversx_sdk.converters.transactions_converter import \
TransactionsConverter
from multiversx_sdk.core.interfaces import IAddress
Expand All @@ -16,12 +16,6 @@
RegisterMetaEsdtOutcome, SetSpecialRoleOutcome,
TokenManagementTransactionsOutcomeParser, UnFreezeOutcome, UnPauseOutcome,
UpdateAttributesOutcome, WipeOutcome)
from multiversx_sdk.network_providers.resources import AwaitingOptions


class INetworkProvider(Protocol):
def await_transaction_completed(self, tx_hash: Union[str, bytes], options: Optional[AwaitingOptions] = None) -> TransactionOnNetwork:
...


class TokenManagementController:
Expand Down

0 comments on commit 5b47645

Please sign in to comment.