Skip to content

fix: support fixed-size array dimensions in signature parser#1

Merged
Maroutis merged 2 commits intomainfrom
feat/multi-dimensional-array
Mar 17, 2026
Merged

fix: support fixed-size array dimensions in signature parser#1
Maroutis merged 2 commits intomainfrom
feat/multi-dimensional-array

Conversation

@Maroutis
Copy link
Owner

Summary

  • The Lark grammar for ABI signature parsing only handled dynamic arrays ([]) but rejected fixed-size arrays ([N]), causing lint failures on valid Solidity types like address[11], uint256[5][5], and address[5].
  • Extended the array grammar rule to accept both [] and [N], updated the array transformer to preserve the size, and fixed the named_tuple filter to correctly identify fixed-size array suffixes.
  • Added 5 test cases covering single-dimension, multi-dimension, mixed fixed/dynamic, tuple, and 3D fixed-size arrays.

Test plan

  • Existing test_reduce_signature parametrized tests still pass (no regressions)
  • New test cases pass: address[11], uint256[5][5], uint256[3], bytes32[2][], (uint256,address)[3], uint256[2][3][4]
  • erc7730 lint calldata-curve.json no longer errors on the Curve router signature

Made with Cursor

@Maroutis Maroutis closed this Mar 17, 2026
@Maroutis Maroutis reopened this Mar 17, 2026
@Maroutis Maroutis merged commit 68104ba into main Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant