Kernel Changelog v4.0
Full restructure: 154 commits since the divergence point, src/ net −541 lines across 47 files. v4 keeps the ERC-4337 / ERC-7579 modular model but rewrites the core, splits validators out of the repo, and adds EIP-7702 support.
Added
- EntryPoint v0.9 support — migrated from v0.7 (via v0.8). New UserOp hash calculation (breaking). EntryPoint at
0x43370900c8de573dB349BEd8DD53b4Ebd3Cce709 - Three account variants —
KernelUUPS(upgradeable proxy),KernelImmutableECDSA(ERC-1967 clone with immutable ECDSA fallback signer), andKernel7702(EIP-7702 EOA delegation, no init). - EIP-7702 as a first-class variant — the EOA is its own fallback signer; supports raw ERC-1271 signing (
_erc1271RawAllowed). - Replayable (chain-agnostic) signatures & enable mode — new nonce vMode flags (
0x40/0x48/0x4C) for chain-agnostic UserOp hashes and enable signatures; replayable nested EIP-712 forisValidSignature. - Enable-mode signature flow — install validators/modules atomically with the first UserOp via
EnableModeSignature(nonce-protected against replay). Stakercontract — replacesFactoryStaker; adds EIP-712 signature-based (chain-agnostic) factory approval alongside owner approval, plus EntryPoint stake/unstake/withdraw anddeployWithFactory().setRootwith package install + cleanup —setRoot(Install[] pkg, bool removeCurrent, bytes uninstallData)installs a new root and uninstalls the previous one (LIFO), callingonUninstallon removed policies/signers.- Nonce invalidation — explicit invalidation feature to clear out validators.
- New libraries —
lib/ERC1271.sol(ERC-7739 nested EIP-712, 3 signature modes),lib/Lib4337.sol,lib/Utils.solwith ValidationId helpers (parseNonce,getType,getValidator,permissionToIdentifier,calldataKeccak). ModuleManager+ExecutorManager— new dedicated managers; hook-use checks; executor-installed check onexecuteFromExecutor.- ERC-5267 interface (
eip712Domain) support.
Full Changelog: v3.3...v4.0