Skip to content

v1.3.0

@e-fu e-fu tagged this 01 May 10:42
Lifts upstream #54's parse-time rejection on Solidity's `function` type
(24-byte external function pointer = 20-byte address ++ 4-byte selector).
`fixed`/`ufixed` stay deferred — Solidity itself does not fully support
fixed-point types.

Production code: removed `:function` from `ABI.Parser.reject_unsupported!/1`;
added `:function` to `FunctionSelector.@type type` + `dynamic?(:function)`;
added encode/decode/packed clauses with explicit non-binary error messages.
Composed types (`function[]`, `function[N]`, `(uint256, function)`) work
through existing recursion. `mix hieroglyph.manifest` re-emits identical
content (timestamp + key-order diffs only).

Tests: converted 5 parse-rejection tests to acceptance tests, added
`:function` to property-test leaf types + dedicated property, focused
unit tests for slot layout / wrong-size / non-binary / packed-mode.

Docs: CHANGELOG 1.3.0 entry, README support flip + `function` shape note +
"Why fixed/ufixed deferred" section, ROADMAP + CLAUDE.md updated to reflect
the partial #54 resolution.
Assets 2
Loading