Skip to content

Conversation

@carlosfebres
Copy link

@carlosfebres carlosfebres commented Oct 8, 2025

Summary

Introduces the ECDSAExecutor module, an ERC-7579 executor that enables off-chain transaction authorization for smart accounts using ECDSA signatures.

Key Features

  • EIP-712 Typed Data Signing: Structured data signing for enhanced security and better wallet UX
  • 2D Nonce System: Supports parallel execution paths with 192-bit key space and 64-bit sequence numbers
  • Time-bound Signatures: Built-in expiration to prevent replay attacks
  • ERC-7579 Compliance: Fully compatible with the modular account standard

Changes

  • ✨ Add `src/executor/ECDSAExecutor.sol` with complete implementation
  • ✅ Add comprehensive test suite in `test/ECDSAExecutor.t.sol`
  • 🔒 Implement replay protection and signature validation
  • ⚡ Gas-optimized using Solady libraries

Security Highlights

  • EIP-712 domain separation prevents cross-chain/cross-contract replay
  • Nonce-based replay protection
  • Owner validation for authorization
  • Signature expiration timestamps

Test Coverage

Full test suite included covering:

  • Installation/uninstallation
  • Signature verification
  • Nonce management (including 2D nonce system)
  • Error cases and edge conditions

carlosfebres and others added 6 commits August 9, 2025 20:12
…ments

- Implement 2D-nonce system compatible with EntryPoint v0.7
- Add signature expiration time validation
- Add zero address validation in onInstall
- Emit OwnerUnregistered event on uninstall
- Add proper error types (InvalidSignature, InvalidOwner)
- Restrict incrementNonce to initialized accounts only
- Achieve 100% test coverage with comprehensive edge case tests

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Use abi.decode instead of direct byte casting for owner extraction
- Add _isInitialized check in onInstall to prevent re-initialization
- Change nonceSequenceNumber mapping from uint256 to uint64 for consistency
- Implement EIP-712 using Solady's EIP712 library for better gas efficiency
- Remove support for EIP-191 signatures, only EIP-712 now supported
- Keep packed nonce approach for gas efficiency
- Keep incrementNonce method for security (allows invalidating nonce sequences)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@leekt
Copy link
Collaborator

leekt commented Oct 17, 2025

sound interesting, few questions

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