• v1.0.0 877e6d34fc

    v1.0.0
    Some checks failed
    release / release (push) Failing after 1m23s
    Stable

    peersky released this 2026-09-07 08:41:40 +00:00 | 11 commits to main since this release

    Major Changes

    • c6f79c4: Security and data-model overhaul of the record lifecycle (single typehash migration):

      • Wallet bound into registrar signature. _TYPEHASH now includes address 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's id and wallet (new idMismatch/walletMismatch errors) — a fresh signature for another identity can no longer be settled against someone else's query.
      • Signed nonce is stored. _setRecord requires record.nonce > storedNonce and persists the signed value instead of incrementing a counter. Renewal signatures cannot be replayed, and deleteName's nonce bump now actually invalidates outstanding signatures. First registration therefore requires nonce >= 1.
      • nameToId hygiene. _setRecord deletes the previous name mapping before writing (rotated names/commitments stop resolving), and skips the nameToId write for zero names so nameless records don't collide on nameToId[0].
      • bytes32 payload added to Record and the typehash; stored per id and returned by resolveRecord.

      Resulting typehash: registerName(bytes32 name,bytes32 id,bytes32 domainName,uint256 validUntil,uint96 nonce,address wallet,bytes32 payload).

    Downloads