from typing import Any, Callable, Optional, Protocol, Union
from multiversx_sdk.core.address import Address
from multiversx_sdk.core.tokens import Token
from multiversx_sdk.core.transaction import Transaction
from multiversx_sdk.core.transaction_on_network import TransactionOnNetwork
from multiversx_sdk.network_providers.resources import (
AccountOnNetwork,
AccountStorage,
AccountStorageEntry,
AwaitingOptions,
FungibleTokenMetadata,
NetworkConfig,
NetworkStatus,
TokenAmountOnNetwork,
TokensCollectionMetadata,
TransactionCostResponse,
)
from multiversx_sdk.smart_contracts.smart_contract_query import (
SmartContractQuery,
SmartContractQueryResponse,
)
[docs]
class INetworkProvider(Protocol):
[docs]
def get_network_config(self) -> NetworkConfig: ...
[docs]
def get_network_status(self, shard: int) -> NetworkStatus: ...
[docs]
def get_account(self, address: Address) -> AccountOnNetwork: ...
[docs]
def get_account_storage(self, address: Address) -> AccountStorage: ...
[docs]
def get_account_storage_entry(self, address: Address, entry_key: str) -> AccountStorageEntry: ...
[docs]
def await_account_on_condition(
self,
address: Address,
condition: Callable[[AccountOnNetwork], bool],
options: Optional[AwaitingOptions],
) -> AccountOnNetwork: ...
[docs]
def send_transaction(self, transaction: Transaction) -> bytes: ...
[docs]
def simulate_transaction(self, transaction: Transaction) -> TransactionOnNetwork: ...
[docs]
def estimate_transaction_cost(self, transaction: Transaction) -> TransactionCostResponse: ...
[docs]
def send_transactions(self, transactions: list[Transaction]) -> tuple[int, list[bytes]]: ...
[docs]
def get_transaction(self, transaction_hash: Union[bytes, str]) -> TransactionOnNetwork: ...
[docs]
def await_transaction_completed(
self, transaction_hash: Union[bytes, str], options: Optional[AwaitingOptions]
) -> TransactionOnNetwork: ...
[docs]
def await_transaction_on_condition(
self,
transaction_hash: Union[bytes, str],
condition: Callable[[TransactionOnNetwork], bool],
options: Optional[AwaitingOptions],
) -> TransactionOnNetwork: ...
[docs]
def get_token_of_account(self, address: Address, token: Token) -> TokenAmountOnNetwork: ...
[docs]
def get_fungible_tokens_of_account(self, address: Address) -> list[TokenAmountOnNetwork]: ...
[docs]
def get_non_fungible_tokens_of_account(self, address: Address) -> list[TokenAmountOnNetwork]: ...
[docs]
def get_definition_of_fungible_token(self, token_identifier: str) -> FungibleTokenMetadata: ...
[docs]
def get_definition_of_tokens_collection(self, collection_name: str) -> TokensCollectionMetadata: ...
[docs]
def query_contract(self, query: SmartContractQuery) -> SmartContractQueryResponse: ...
[docs]
def do_get_generic(self, url: str, url_parameters: Optional[dict[str, Any]]) -> Any: ...
[docs]
def do_post_generic(self, url: str, data: Any, url_parameters: Optional[dict[str, Any]]) -> Any: ...