Skip to content

feat(#4): add Hash encoding support#51

Open
re1ro wants to merge 1 commit intofeature/typed-encoder-step3from
feature/typed-encoder-step4
Open

feat(#4): add Hash encoding support#51
re1ro wants to merge 1 commit intofeature/typed-encoder-step3from
feature/typed-encoder-step4

Conversation

@re1ro
Copy link
Collaborator

@re1ro re1ro commented Oct 31, 2025

  • enable EncodingType.Hash to produce keccak256 packed hashes
  • add dedicated hash encoding tests covering nesting, arrays, and edge cases

- enable EncodingType.Hash to produce keccak256 packed hashes
- add dedicated hash encoding tests covering nesting, arrays, and edge cases
@re1ro re1ro requested review from Copilot and fish-sammy October 31, 2025 12:17
@re1ro re1ro self-assigned this Oct 31, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements the Hash encoding type for the TypedEncoder library, which computes compact hash commitments using keccak256(abi.encodePacked(all_fields)).

Key changes:

  • Added Hash encoding support to the main encode() function with proper routing to _encodeHash()
  • Removed Hash from the "not implemented" error condition
  • Added comprehensive test coverage for Hash encoding including primitives, nested structs, arrays, and edge cases

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/lib/TypedEncoder.sol Implemented Hash encoding type by adding conditional check in encode() function and removing it from unimplemented types list
test/libs/TypedEncoderHashEncoding.t.sol Added comprehensive test suite covering Hash encoding for basic primitives, multiple chunks, nested structs, arrays, and edge cases
Comments suppressed due to low confidence (1)

src/lib/TypedEncoder.sol:92

  • The documentation comment for the encodingType parameter is outdated. It lists only a subset of available encoding types (Struct/Array/ABI/CallWithSelector/CallWithSignature) but omits Packed, Hash, Create, Create2, and Create3 which are defined in the EncodingType enum. Update the documentation to include all encoding types or reference the EncodingType enum documentation instead.
     * @param encodingType Determines how this struct is encoded for ABI
     * (Struct/Array/ABI/CallWithSelector/CallWithSignature)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@re1ro re1ro changed the title feat: add Hash encoding support feat(#4): add Hash encoding support Oct 31, 2025
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.

2 participants