-
released this
2026-09-07 08:41:40 +00:00 | 11 commits to main since this releaseMajor Changes
-
c6f79c4: Security and data-model overhaul of the record lifecycle (single typehash migration):- Wallet bound into registrar signature.
_TYPEHASHnow includesaddress wallet;register()can no longer be front-run by submitting a signed record under a different wallet. renewRecord()now writes. Renewals route through_setRecord, and the signed record must match the resolved record'sidandwallet(newidMismatch/walletMismatcherrors) — a fresh signature for another identity can no longer be settled against someone else's query.- Signed nonce is stored.
_setRecordrequiresrecord.nonce > storedNonceand persists the signed value instead of incrementing a counter. Renewal signatures cannot be replayed, anddeleteName's nonce bump now actually invalidates outstanding signatures. First registration therefore requiresnonce >= 1. nameToIdhygiene._setRecorddeletes the previous name mapping before writing (rotated names/commitments stop resolving), and skips thenameToIdwrite for zero names so nameless records don't collide onnameToId[0].bytes32 payloadadded toRecordand the typehash; stored per id and returned byresolveRecord.
Resulting typehash:
registerName(bytes32 name,bytes32 id,bytes32 domainName,uint256 validUntil,uint96 nonce,address wallet,bytes32 payload). - Wallet bound into registrar signature.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-