Skip to content

Commit

Permalink
Adding legacy '*' Array syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
elicbarbieri committed Mar 30, 2024
1 parent f6ce2ec commit d856b38
Show file tree
Hide file tree
Showing 10 changed files with 832 additions and 25 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ __pycache__

# Docs
_build/

# Build
dist/
25 changes: 13 additions & 12 deletions starknet_abi/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,8 @@ def _parse_type( # pylint: disable=too-many-return-statements
# Fallback for rarely encountered types
if abi_type == "felt": # Only present in L1 Handler ABIs?
return StarknetCoreType.Felt
if abi_type.endswith("*"): # Old Syntax for Arrays ?
return StarknetArray(_parse_type(abi_type[:-1], custom_types))
if abi_type == "felt*": # Only present in L1 Handler ABIs?
return StarknetArray(StarknetCoreType.Felt)
if abi_type == "Uint256": # Only present in L1 Handler ABIs?
Expand Down Expand Up @@ -322,17 +324,16 @@ def parse_abi_event(
"""
if "kind" in abi_event: # Version 2 Abi
if abi_event["kind"] == "struct":
return AbiEvent(
name=abi_event["name"],
data=[
AbiParameter(
name=abi_input["name"],
type=_parse_type(abi_input["type"], custom_types),
)
for abi_input in abi_event["members"]
],
)
# TODO: Clean up Enum Event handling
event_parameters = abi_event["members"]
else:
return None

elif "inputs" in abi_event: # Version 1 Abi
event_parameters = abi_event["inputs"]

elif "data" in abi_event:
event_parameters = abi_event["data"]
else:
return None

return AbiEvent(
Expand All @@ -342,7 +343,7 @@ def parse_abi_event(
name=abi_input["name"],
type=_parse_type(abi_input["type"], custom_types),
)
for abi_input in abi_event["inputs"]
for abi_input in event_parameters
],
)

Expand Down
15 changes: 8 additions & 7 deletions tests/abi.py

Large diffs are not rendered by default.

Loading

0 comments on commit d856b38

Please sign in to comment.