Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split RPC schemas into multiple files #1385

Merged
merged 16 commits into from
Jul 9, 2024
Merged
19 changes: 11 additions & 8 deletions starknet_py/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,32 @@

from starknet_py.net.client_models import (
CasmClass,
CompiledContract,
ContractClass,
CompiledDeprecatedContract,
DeprecatedContractClass,
SierraCompiledContract,
)
from starknet_py.net.schemas.gateway import (
from starknet_py.net.schemas.rpc.contract import (
CasmClassSchema,
CompiledContractSchema,
ContractClassSchema,
DeprecatedCompiledContractSchema,
SierraCompiledContractSchema,
)


def create_compiled_contract(
compiled_contract: str,
) -> CompiledContract:
) -> CompiledDeprecatedContract:
"""
Creates CompiledContract instance.

:param compiled_contract: compiled contract string.
:return: CompiledContract instance.
"""

return cast(CompiledContract, CompiledContractSchema().loads(compiled_contract))
return cast(
CompiledDeprecatedContract,
DeprecatedCompiledContractSchema().loads(compiled_contract),
)


def create_sierra_compiled_contract(compiled_contract: str) -> SierraCompiledContract:
Expand All @@ -45,7 +48,7 @@ def create_sierra_compiled_contract(compiled_contract: str) -> SierraCompiledCon

def create_contract_class(
compiled_contract: str,
) -> ContractClass:
) -> DeprecatedContractClass:
"""
Creates ContractClass from already compiled contract.

Expand All @@ -60,7 +63,7 @@ def create_contract_class(
"Consider using create_compiled_contract instead.",
category=DeprecationWarning,
)
return cast(ContractClass, ContractClassSchema().loads(compiled_contract))
return cast(DeprecatedContractClass, ContractClassSchema().loads(compiled_contract))


def create_casm_class(compiled_contract: str) -> CasmClass:
Expand Down
6 changes: 3 additions & 3 deletions starknet_py/hash/class_hash.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
from starknet_py.cairo.felt import encode_shortstring
from starknet_py.constants import API_VERSION
from starknet_py.hash.utils import _starknet_keccak, compute_hash_on_elements
from starknet_py.net.client_models import ContractClass, EntryPoint
from starknet_py.net.client_models import DeprecatedContractClass, EntryPoint


def compute_class_hash(contract_class: ContractClass) -> int:
def compute_class_hash(contract_class: DeprecatedContractClass) -> int:
"""
Calculate class hash of a ContractClass.
"""
Expand Down Expand Up @@ -59,7 +59,7 @@ def _entry_points_array(entry_points: List[EntryPoint]) -> List[int]:
return entry_points_array


def _compute_hinted_class_hash(contract_class: ContractClass) -> int:
def _compute_hinted_class_hash(contract_class: DeprecatedContractClass) -> int:
program = contract_class.program
program["debug_info"] = None

Expand Down
4 changes: 2 additions & 2 deletions starknet_py/hash/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
from starknet_py.hash.sierra_class_hash import compute_sierra_class_hash
from starknet_py.hash.utils import compute_hash_on_elements
from starknet_py.net.client_models import (
ContractClass,
DAMode,
DeprecatedContractClass,
ResourceBoundsMapping,
SierraContractClass,
)
Expand Down Expand Up @@ -256,7 +256,7 @@ def compute_deploy_account_v3_transaction_hash(


def compute_declare_transaction_hash(
contract_class: ContractClass,
contract_class: DeprecatedContractClass,
chain_id: int,
sender_address: int,
max_fee: int,
Expand Down
4 changes: 2 additions & 2 deletions starknet_py/net/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
BlockStateUpdate,
BlockTransactionTrace,
Call,
ContractClass,
DeclareTransactionResponse,
DeployAccountTransactionResponse,
DeprecatedContractClass,
EstimatedFee,
Hash,
SentTransactionResponse,
Expand Down Expand Up @@ -278,7 +278,7 @@ async def get_class_hash_at(
@abstractmethod
async def get_class_by_hash(
self, class_hash: Hash
) -> Union[ContractClass, SierraContractClass]:
) -> Union[DeprecatedContractClass, SierraContractClass]:
"""
Get the contract class for given class hash

Expand Down
4 changes: 2 additions & 2 deletions starknet_py/net/client_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,7 @@ class EntryPointsByType:


@dataclass
class ContractClass:
class DeprecatedContractClass:
"""
Dataclass representing contract declared to Starknet.
"""
Expand All @@ -773,7 +773,7 @@ class ContractClass:


@dataclass
class CompiledContract(ContractClass):
class CompiledDeprecatedContract(DeprecatedContractClass):
kkawula marked this conversation as resolved.
Show resolved Hide resolved
"""
Dataclass representing ContractClass with required abi.
"""
Expand Down
36 changes: 21 additions & 15 deletions starknet_py/net/full_node_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
BlockStateUpdate,
BlockTransactionTrace,
Call,
ContractClass,
DeclareTransactionResponse,
DeployAccountTransactionResponse,
DeprecatedContractClass,
EstimatedFee,
EventsChunk,
Hash,
Expand Down Expand Up @@ -51,29 +51,35 @@
DeployAccount,
Invoke,
)
from starknet_py.net.schemas.rpc import (
from starknet_py.net.schemas.rpc.block import (
BlockHashAndNumberSchema,
BlockStateUpdateSchema,
PendingBlockStateUpdateSchema,
PendingStarknetBlockWithTxHashesSchema,
)
from starknet_py.net.schemas.rpc.contract import (
DeprecatedContractClassSchema,
SierraContractClassSchema,
SyncStatusSchema,
)
from starknet_py.net.schemas.rpc.event import EventsChunkSchema
from starknet_py.net.schemas.rpc.trace_api import (
BlockTransactionTraceSchema,
ContractClassSchema,
EstimatedFeeSchema,
SimulatedTransactionSchema,
TransactionTraceSchema,
)
from starknet_py.net.schemas.rpc.transactions import (
DeclareTransactionResponseSchema,
DeployAccountTransactionResponseSchema,
EstimatedFeeSchema,
EventsChunkSchema,
PendingBlockStateUpdateSchema,
PendingStarknetBlockSchema,
PendingStarknetBlockWithReceiptsSchema,
PendingStarknetBlockWithTxHashesSchema,
SentTransactionSchema,
SierraContractClassSchema,
SimulatedTransactionSchema,
StarknetBlockSchema,
StarknetBlockWithReceiptsSchema,
StarknetBlockWithTxHashesSchema,
SyncStatusSchema,
TransactionReceiptSchema,
TransactionStatusResponseSchema,
TransactionTraceSchema,
TypesOfTransactionsSchema,
)
from starknet_py.transaction_errors import TransactionNotReceivedError
Expand Down Expand Up @@ -548,7 +554,7 @@ async def get_class_by_hash(
class_hash: Hash,
block_hash: Optional[Union[Hash, Tag]] = None,
block_number: Optional[Union[int, Tag]] = None,
) -> Union[SierraContractClass, ContractClass]:
) -> Union[SierraContractClass, DeprecatedContractClass]:
block_identifier = get_block_identifier(
block_hash=block_hash, block_number=block_number
)
Expand All @@ -566,7 +572,7 @@ async def get_class_by_hash(
SierraContractClass,
SierraContractClassSchema().load(res),
)
return cast(ContractClass, ContractClassSchema().load(res))
return cast(DeprecatedContractClass, DeprecatedContractClassSchema().load(res))

# Only RPC methods

Expand Down Expand Up @@ -625,7 +631,7 @@ async def get_class_at(
contract_address: Hash,
block_hash: Optional[Union[Hash, Tag]] = None,
block_number: Optional[Union[int, Tag]] = None,
) -> Union[SierraContractClass, ContractClass]:
) -> Union[SierraContractClass, DeprecatedContractClass]:
"""
Get the contract class definition in the given block at the given address

Expand All @@ -651,7 +657,7 @@ async def get_class_at(
SierraContractClass,
SierraContractClassSchema().load(res),
)
return cast(ContractClass, ContractClassSchema().load(res))
return cast(DeprecatedContractClass, DeprecatedContractClassSchema().load(res))

async def get_contract_nonce(
self,
Expand Down
8 changes: 5 additions & 3 deletions starknet_py/net/models/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,16 @@
compute_invoke_v3_transaction_hash,
)
from starknet_py.net.client_models import (
ContractClass,
DAMode,
DeprecatedContractClass,
ResourceBoundsMapping,
SierraContractClass,
TransactionType,
)
from starknet_py.net.schemas.common import Felt, TransactionTypeField
from starknet_py.net.schemas.gateway import (

# from starknet_py.net.schemas.gateway import SierraContractClassSchema
kkawula marked this conversation as resolved.
Show resolved Hide resolved
from starknet_py.net.schemas.rpc.contract import (
ContractClassSchema,
SierraContractClassSchema,
)
Expand Down Expand Up @@ -186,7 +188,7 @@ class DeclareV1(_DeprecatedAccountTransaction):
"""

# The class to be declared, included for all methods involving execution (estimateFee, simulateTransactions)
contract_class: ContractClass = field(
contract_class: DeprecatedContractClass = field(
metadata={"marshmallow_field": fields.Nested(ContractClassSchema())}
)
# The address of the account contract sending the declaration transaction.
Expand Down
4 changes: 2 additions & 2 deletions starknet_py/net/schemas/broadcasted_txn.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

from starknet_py.net.client_models import TransactionType
from starknet_py.net.models.transaction import compress_program, decompress_program
from starknet_py.net.schemas.gateway import (
from starknet_py.net.schemas.rpc.contract import (
ContractClassSchema,
SierraCompiledContractSchema,
)
from starknet_py.net.schemas.rpc import (
from starknet_py.net.schemas.rpc.transactions import (
DeclareTransactionV1Schema,
DeclareTransactionV2Schema,
DeclareTransactionV3Schema,
Expand Down
Loading
Loading