-
released this
2026-09-07 09:48:26 +00:00 | 3 commits to main since this releaseMinor Changes
-
a2c2813: Sepolia deployment and tooling:- Deployed Multipass v1.0.0 to Sepolia (chainId 11155111), artifacts shipped under
deployments/sepolia: proxy0x418F82fd0014a4CA402F145978bfaF0555a9cA06, implementation0xF5eEB42B38CA65eD78980D349c798D7eE153F222, DefaultProxyAdmin0x57ac522c71496Ce3007eF233BD31b23ab8FA98eC. All verified on Etherscan. EIP-712 domain:MultipassDNS/1.0.0, owner0x507c2d32185667156de5B4C440FEEf3800078bDb. - Added
sepolianetwork to hardhat config (ETH_SEPOLIA_RPC_URL,ETH_SEPOLIA_MNEMONIC). - Contract verification moved to Etherscan API V2 via
@nomicfoundation/hardhat-verify2.1.x with a singleETHERSCAN_V2_KEY(V1 per-chain endpoints are deprecated).
- Deployed Multipass v1.0.0 to Sepolia (chainId 11155111), artifacts shipped under
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
-
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
-