Skip to content

Commit 4edbde3

Browse files
fix methods throwing on different starknet versions (#1167)
1 parent 295934b commit 4edbde3

File tree

3 files changed

+44
-5
lines changed

3 files changed

+44
-5
lines changed

starknet_py/net/gateway_client.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ async def get_state_update(
147147
self,
148148
block_hash: Optional[Union[Hash, Tag]] = None,
149149
block_number: Optional[Union[int, Tag]] = None,
150-
include_block: bool = False,
150+
# TODO (#1166): revert to `bool = False`
151+
include_block: Optional[bool] = None,
151152
) -> Union[BlockStateUpdate, StateUpdateWithBlock]:
152153
"""
153154
Get the information about the result of executing the requested block.
@@ -157,14 +158,25 @@ async def get_state_update(
157158
:param include_block: Flag deciding whether to include the queried block. Defaults to false.
158159
:return: BlockStateUpdate object representing changes in the requested block.
159160
"""
161+
# TODO (#1166): remove that
162+
if include_block is not None and self._net in [
163+
"https://alpha-mainnet.starknet.io",
164+
"mainnet",
165+
]:
166+
raise ValueError(
167+
"Argument 'include_block' does not work on mainnet yet and will be working after v0.12.2 release."
168+
)
169+
160170
block_identifier = get_block_identifier(
161171
block_hash=block_hash, block_number=block_number
162172
)
163173

164174
params = {
165-
"includeBlock": str(include_block).lower(),
166175
**block_identifier,
167176
}
177+
# TODO (#1166): bring back into params
178+
if include_block is not None:
179+
params["includeBlock"] = str(include_block).lower()
168180

169181
res = await self._feeder_gateway_client.call(
170182
method_name="get_state_update", params=params

starknet_py/net/schemas/gateway.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,8 @@ class StarknetBlockSchema(Schema):
261261
parent_block_hash = Felt(data_key="parent_block_hash", required=True)
262262
block_number = fields.Integer(data_key="block_number")
263263
status = BlockStatusField(data_key="status", required=True)
264-
root = Felt(data_key="state_root")
264+
# TODO (#1166): change nonprefixedhex to felt in line below
265+
root = NonPrefixedHex(data_key="state_root")
265266
transactions = fields.List(
266267
fields.Nested(TypesOfTransactionsSchema(unknown=EXCLUDE)),
267268
data_key="transactions",
@@ -423,8 +424,10 @@ def make_dataclass(self, data, **kwargs) -> GatewayStateDiff:
423424

424425
class BlockStateUpdateSchema(Schema):
425426
block_hash = Felt(data_key="block_hash", required=True)
426-
new_root = Felt(data_key="new_root", required=True)
427-
old_root = Felt(data_key="old_root", required=True)
427+
# TODO (#1166): change nonprefixedhex to felt in line below
428+
new_root = NonPrefixedHex(data_key="new_root", required=True)
429+
# TODO (#1166): change nonprefixedhex to felt in line below
430+
old_root = NonPrefixedHex(data_key="old_root", required=True)
428431
state_diff = fields.Nested(StateDiffSchema(), data_key="state_diff", required=True)
429432

430433
@post_load

starknet_py/tests/e2e/integration_tests/client_test.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,3 +450,27 @@ async def test_get_state_update_with_block(gateway_client_integration):
450450

451451
assert res.block == block
452452
assert res.state_update is not None
453+
454+
455+
# TODO (#1166): remove tests below after mainnet release
456+
@pytest.mark.asyncio
457+
async def test_get_block_different_starknet_versions():
458+
mainnet = GatewayClient(net="mainnet")
459+
testnet = GatewayClient(net="testnet")
460+
461+
_ = await mainnet.get_block(block_number=100000)
462+
_ = await testnet.get_block(block_number=100000)
463+
464+
465+
@pytest.mark.asyncio
466+
async def test_get_state_update_different_starknet_versions():
467+
mainnet = GatewayClient(net="mainnet")
468+
testnet = GatewayClient(net="testnet")
469+
470+
_ = await mainnet.get_state_update(block_number=100000)
471+
472+
with pytest.raises(ValueError):
473+
_ = await mainnet.get_state_update(block_number=100000, include_block=False)
474+
_ = await mainnet.get_state_update(block_number=100000, include_block=True)
475+
476+
_ = await testnet.get_state_update(block_number=100000, include_block=True)

0 commit comments

Comments
 (0)