Skip to content
This repository was archived by the owner on Jun 24, 2026. It is now read-only.

fix: encode static arrays and dynamic tuples in ABI#2693

Closed
TUPM96 wants to merge 1 commit into
trailofbits:masterfrom
TUPM96:codex/abi-static-array-dynamic-tuple
Closed

fix: encode static arrays and dynamic tuples in ABI#2693
TUPM96 wants to merge 1 commit into
trailofbits:masterfrom
TUPM96:codex/abi-static-array-dynamic-tuple

Conversation

@TUPM96

@TUPM96 TUPM96 commented May 25, 2026

Copy link
Copy Markdown

Fixes #1219

Summary

  • classify ABI types as static or dynamic according to the Solidity ABI spec
  • encode fixed-size arrays of static elements inline instead of as dynamic arrays
  • encode and decode nested tuples with dynamic members through head offsets
  • add regression coverage for uint[1] and nested dynamic tuples

Validation

  • python -m black --check manticore/ethereum/abi.py tests/ethereum/test_general.py
  • python -m compileall manticore/ethereum/abi.py tests/ethereum/test_general.py
  • custom ABI regression script covering fixed arrays, dynamic tuples, dynamic arrays, fixed arrays with dynamic elements, and function-call encoding/decoding
  • git diff --check

Full pytest could not be run on this Windows checkout because Manticore imports POSIX-only fcntl; WSL is present but lacks pip/ensurepip in this environment.

Payout details can be provided privately on acceptance.

Copilot AI review requested due to automatic review settings May 25, 2026 11:38
@TUPM96 TUPM96 requested a review from ekilmer as a code owner May 25, 2026 11:38
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@disconnect3d

Copy link
Copy Markdown
Member

See #2694 (comment)

Happy to review and maybe merge if u sign in CLA. Since lots of time has passed w/o it, I am closing it.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ethereum.ABI incorrectly (de)serializes certain types

4 participants