Skip to content

Commit bc7cc01

Browse files
authored
Split RPC schemas into multiple files (#1385)
* schemas moved to trace_api.py * schemas moved to transactions.py * add schemas/rpc/block.py * delete duplicates * file rename * rename ContractClass -> DeprecatedContractClass * event schema moved to event.py * everything moved from gateway.py * rm gateway.py * styling * StarknetBlockWithTxHashesSchema moved to block.py * lint * change List field type in SierraContractClassSchema * add breaking changes in migration guide * circular import fix, general.py added
1 parent 41877c1 commit bc7cc01

20 files changed

+1092
-1131
lines changed

docs/migration_guide.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ Version 0.23.0 of **starknet.py** comes with support for `SNIP-12 <https://githu
3131
2. :meth:`Account.verify_message` now accepts parameter ``typed_data`` as both :class:`~starknet_py.utils.typed_data.TypedData` and :class:`~starknet_py.net.models.typed_data.TypedDataDict`
3232
3. :meth:`~starknet_py.net.signer.stark_curve_signer.KeyPair.from_keystore` has been added
3333

34+
3. :class:`CompiledContract`, :class:`ContractClass` and :class:`ContractClassSchema` have been renamed to :class:`DeprecatedCompiledContract`, :class:`DeprecatedContractClass` and :class:`DeprecatedContractClassSchema`
35+
3436
******************************
3537
0.22.0 Migration guide
3638
******************************

starknet_py/common.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,32 @@
55

66
from starknet_py.net.client_models import (
77
CasmClass,
8-
CompiledContract,
9-
ContractClass,
8+
DeprecatedCompiledContract,
9+
DeprecatedContractClass,
1010
SierraCompiledContract,
1111
)
12-
from starknet_py.net.schemas.gateway import (
12+
from starknet_py.net.schemas.rpc.contract import (
1313
CasmClassSchema,
14-
CompiledContractSchema,
1514
ContractClassSchema,
15+
DeprecatedCompiledContractSchema,
1616
SierraCompiledContractSchema,
1717
)
1818

1919

2020
def create_compiled_contract(
2121
compiled_contract: str,
22-
) -> CompiledContract:
22+
) -> DeprecatedCompiledContract:
2323
"""
2424
Creates CompiledContract instance.
2525
2626
:param compiled_contract: compiled contract string.
2727
:return: CompiledContract instance.
2828
"""
2929

30-
return cast(CompiledContract, CompiledContractSchema().loads(compiled_contract))
30+
return cast(
31+
DeprecatedCompiledContract,
32+
DeprecatedCompiledContractSchema().loads(compiled_contract),
33+
)
3134

3235

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

4649
def create_contract_class(
4750
compiled_contract: str,
48-
) -> ContractClass:
51+
) -> DeprecatedContractClass:
4952
"""
5053
Creates ContractClass from already compiled contract.
5154
@@ -60,7 +63,7 @@ def create_contract_class(
6063
"Consider using create_compiled_contract instead.",
6164
category=DeprecationWarning,
6265
)
63-
return cast(ContractClass, ContractClassSchema().loads(compiled_contract))
66+
return cast(DeprecatedContractClass, ContractClassSchema().loads(compiled_contract))
6467

6568

6669
def create_casm_class(compiled_contract: str) -> CasmClass:

starknet_py/hash/class_hash.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from starknet_py.cairo.felt import encode_shortstring
77
from starknet_py.constants import API_VERSION
88
from starknet_py.hash.utils import _starknet_keccak, compute_hash_on_elements
9-
from starknet_py.net.client_models import ContractClass, EntryPoint
9+
from starknet_py.net.client_models import DeprecatedContractClass, EntryPoint
1010

1111

12-
def compute_class_hash(contract_class: ContractClass) -> int:
12+
def compute_class_hash(contract_class: DeprecatedContractClass) -> int:
1313
"""
1414
Calculate class hash of a ContractClass.
1515
"""
@@ -59,7 +59,7 @@ def _entry_points_array(entry_points: List[EntryPoint]) -> List[int]:
5959
return entry_points_array
6060

6161

62-
def _compute_hinted_class_hash(contract_class: ContractClass) -> int:
62+
def _compute_hinted_class_hash(contract_class: DeprecatedContractClass) -> int:
6363
program = contract_class.program
6464
program["debug_info"] = None
6565

starknet_py/hash/sierra_class_hash.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ def compute_sierra_class_hash(sierra_contract_class: SierraContractClass) -> int
3131
assert sierra_contract_class.abi is not None
3232
abi_hash = _starknet_keccak(bytes(sierra_contract_class.abi, "utf-8"))
3333

34-
_sierra_program = [int(val, 0) for val in sierra_contract_class.sierra_program]
35-
sierra_program_hash = poseidon_hash_many(_sierra_program)
34+
sierra_program_hash = poseidon_hash_many(sierra_contract_class.sierra_program)
3635

3736
return poseidon_hash_many(
3837
[

starknet_py/hash/transaction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
from starknet_py.hash.sierra_class_hash import compute_sierra_class_hash
1212
from starknet_py.hash.utils import compute_hash_on_elements
1313
from starknet_py.net.client_models import (
14-
ContractClass,
1514
DAMode,
15+
DeprecatedContractClass,
1616
ResourceBoundsMapping,
1717
SierraContractClass,
1818
)
@@ -256,7 +256,7 @@ def compute_deploy_account_v3_transaction_hash(
256256

257257

258258
def compute_declare_transaction_hash(
259-
contract_class: ContractClass,
259+
contract_class: DeprecatedContractClass,
260260
chain_id: int,
261261
sender_address: int,
262262
max_fee: int,

starknet_py/net/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
BlockStateUpdate,
1010
BlockTransactionTrace,
1111
Call,
12-
ContractClass,
1312
DeclareTransactionResponse,
1413
DeployAccountTransactionResponse,
14+
DeprecatedContractClass,
1515
EstimatedFee,
1616
Hash,
1717
SentTransactionResponse,
@@ -278,7 +278,7 @@ async def get_class_hash_at(
278278
@abstractmethod
279279
async def get_class_by_hash(
280280
self, class_hash: Hash
281-
) -> Union[ContractClass, SierraContractClass]:
281+
) -> Union[DeprecatedContractClass, SierraContractClass]:
282282
"""
283283
Get the contract class for given class hash
284284

starknet_py/net/client_models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@ class EntryPointsByType:
762762

763763

764764
@dataclass
765-
class ContractClass:
765+
class DeprecatedContractClass:
766766
"""
767767
Dataclass representing contract declared to Starknet.
768768
"""
@@ -773,7 +773,7 @@ class ContractClass:
773773

774774

775775
@dataclass
776-
class CompiledContract(ContractClass):
776+
class DeprecatedCompiledContract(DeprecatedContractClass):
777777
"""
778778
Dataclass representing ContractClass with required abi.
779779
"""
@@ -812,7 +812,7 @@ class SierraContractClass:
812812
"""
813813

814814
contract_class_version: str
815-
sierra_program: List[str]
815+
sierra_program: List[int]
816816
entry_points_by_type: SierraEntryPointsByType
817817
abi: Optional[str] = None
818818

starknet_py/net/full_node_client.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
BlockStateUpdate,
1313
BlockTransactionTrace,
1414
Call,
15-
ContractClass,
1615
DeclareTransactionResponse,
1716
DeployAccountTransactionResponse,
17+
DeprecatedContractClass,
1818
EstimatedFee,
1919
EventsChunk,
2020
Hash,
@@ -51,29 +51,35 @@
5151
DeployAccount,
5252
Invoke,
5353
)
54-
from starknet_py.net.schemas.rpc import (
54+
from starknet_py.net.schemas.rpc.block import (
5555
BlockHashAndNumberSchema,
5656
BlockStateUpdateSchema,
57-
BlockTransactionTraceSchema,
58-
ContractClassSchema,
59-
DeclareTransactionResponseSchema,
60-
DeployAccountTransactionResponseSchema,
61-
EstimatedFeeSchema,
62-
EventsChunkSchema,
6357
PendingBlockStateUpdateSchema,
6458
PendingStarknetBlockSchema,
6559
PendingStarknetBlockWithReceiptsSchema,
6660
PendingStarknetBlockWithTxHashesSchema,
67-
SentTransactionSchema,
68-
SierraContractClassSchema,
69-
SimulatedTransactionSchema,
7061
StarknetBlockSchema,
7162
StarknetBlockWithReceiptsSchema,
7263
StarknetBlockWithTxHashesSchema,
64+
)
65+
from starknet_py.net.schemas.rpc.contract import (
66+
DeprecatedContractClassSchema,
67+
SierraContractClassSchema,
7368
SyncStatusSchema,
69+
)
70+
from starknet_py.net.schemas.rpc.event import EventsChunkSchema
71+
from starknet_py.net.schemas.rpc.general import EstimatedFeeSchema
72+
from starknet_py.net.schemas.rpc.trace_api import (
73+
BlockTransactionTraceSchema,
74+
SimulatedTransactionSchema,
75+
TransactionTraceSchema,
76+
)
77+
from starknet_py.net.schemas.rpc.transactions import (
78+
DeclareTransactionResponseSchema,
79+
DeployAccountTransactionResponseSchema,
80+
SentTransactionSchema,
7481
TransactionReceiptSchema,
7582
TransactionStatusResponseSchema,
76-
TransactionTraceSchema,
7783
TypesOfTransactionsSchema,
7884
)
7985
from starknet_py.transaction_errors import TransactionNotReceivedError
@@ -548,7 +554,7 @@ async def get_class_by_hash(
548554
class_hash: Hash,
549555
block_hash: Optional[Union[Hash, Tag]] = None,
550556
block_number: Optional[Union[int, Tag]] = None,
551-
) -> Union[SierraContractClass, ContractClass]:
557+
) -> Union[SierraContractClass, DeprecatedContractClass]:
552558
block_identifier = get_block_identifier(
553559
block_hash=block_hash, block_number=block_number
554560
)
@@ -566,7 +572,7 @@ async def get_class_by_hash(
566572
SierraContractClass,
567573
SierraContractClassSchema().load(res),
568574
)
569-
return cast(ContractClass, ContractClassSchema().load(res))
575+
return cast(DeprecatedContractClass, DeprecatedContractClassSchema().load(res))
570576

571577
# Only RPC methods
572578

@@ -625,7 +631,7 @@ async def get_class_at(
625631
contract_address: Hash,
626632
block_hash: Optional[Union[Hash, Tag]] = None,
627633
block_number: Optional[Union[int, Tag]] = None,
628-
) -> Union[SierraContractClass, ContractClass]:
634+
) -> Union[SierraContractClass, DeprecatedContractClass]:
629635
"""
630636
Get the contract class definition in the given block at the given address
631637
@@ -651,7 +657,7 @@ async def get_class_at(
651657
SierraContractClass,
652658
SierraContractClassSchema().load(res),
653659
)
654-
return cast(ContractClass, ContractClassSchema().load(res))
660+
return cast(DeprecatedContractClass, DeprecatedContractClassSchema().load(res))
655661

656662
async def get_contract_nonce(
657663
self,

starknet_py/net/models/transaction.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
compute_invoke_v3_transaction_hash,
3030
)
3131
from starknet_py.net.client_models import (
32-
ContractClass,
3332
DAMode,
33+
DeprecatedContractClass,
3434
ResourceBoundsMapping,
3535
SierraContractClass,
3636
TransactionType,
3737
)
3838
from starknet_py.net.schemas.common import Felt, TransactionTypeField
39-
from starknet_py.net.schemas.gateway import (
39+
from starknet_py.net.schemas.rpc.contract import (
4040
ContractClassSchema,
4141
SierraContractClassSchema,
4242
)
@@ -186,7 +186,7 @@ class DeclareV1(_DeprecatedAccountTransaction):
186186
"""
187187

188188
# The class to be declared, included for all methods involving execution (estimateFee, simulateTransactions)
189-
contract_class: ContractClass = field(
189+
contract_class: DeprecatedContractClass = field(
190190
metadata={"marshmallow_field": fields.Nested(ContractClassSchema())}
191191
)
192192
# The address of the account contract sending the declaration transaction.

starknet_py/net/schemas/broadcasted_txn.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
from starknet_py.net.client_models import TransactionType
55
from starknet_py.net.models.transaction import compress_program, decompress_program
6-
from starknet_py.net.schemas.gateway import (
6+
from starknet_py.net.schemas.rpc.contract import (
77
ContractClassSchema,
88
SierraCompiledContractSchema,
99
)
10-
from starknet_py.net.schemas.rpc import (
10+
from starknet_py.net.schemas.rpc.transactions import (
1111
DeclareTransactionV1Schema,
1212
DeclareTransactionV2Schema,
1313
DeclareTransactionV3Schema,

0 commit comments

Comments
 (0)