• v1.1.0 053959d90f

    v1.1.0
    Some checks failed
    release / release (push) Failing after 1m13s
    Stable

    peersky released this 2026-09-07 09:48:26 +00:00 | 3 commits to main since this release

    Minor Changes

    • a2c2813: Sepolia deployment and tooling:

      • Deployed Multipass v1.0.0 to Sepolia (chainId 11155111), artifacts shipped under deployments/sepolia: proxy 0x418F82fd0014a4CA402F145978bfaF0555a9cA06, implementation 0xF5eEB42B38CA65eD78980D349c798D7eE153F222, DefaultProxyAdmin 0x57ac522c71496Ce3007eF233BD31b23ab8FA98eC. All verified on Etherscan. EIP-712 domain: MultipassDNS / 1.0.0, owner 0x507c2d32185667156de5B4C440FEEf3800078bDb.
      • Added sepolia network to hardhat config (ETH_SEPOLIA_RPC_URL, ETH_SEPOLIA_MNEMONIC).
      • Contract verification moved to Etherscan API V2 via @nomicfoundation/hardhat-verify 2.1.x with a single ETHERSCAN_V2_KEY (V1 per-chain endpoints are deprecated).
    Downloads
  • 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