# Prior repo-contract WASM hashes for permissionless migration.
#
# When `freenet-git` ships a new repo-contract WASM (e.g. moving from
# Phase 1.0 to Phase 1.1, or adding ChunkedPack support, etc.), the
# contract key for any given prefix changes — because the key is
# `BLAKE3(BLAKE3(wasm) || serialize({prefix}))`. A user with a fresh
# `cargo install freenet-git` would compute a different key from the
# same URL and get a 404 when trying to clone.
#
# Each entry below records the BLAKE3-32 of a previously-shipped
# repo-contract WASM. On `git fetch` / `git clone`, when the current
# contract key returns not-found, the helper iterates these legacy
# hashes, computes the legacy contract key for the same prefix, and
# tries each in turn. If state is found at a legacy key, the helper
# GETs the state, validates it against the new contract semantics,
# and PUTs it to the new contract key. State is signed by the repo
# owner, so this migration is permissionless: any client with the
# new WASM and access to the legacy state can do it.
#
# How to add an entry when shipping a new freenet-git version that
# changes the repo-contract WASM:
#
#   1. BEFORE bumping anything, capture the BLAKE3 of the
#      currently-committed `crates/freenet-git/contracts/repo-contract.wasm`.
#   2. Add an entry below with that hash and a one-line description
#      ("0.1.3 repo-contract").
#   3. Make your code changes, rebuild, copy the new WASM into the
#      contracts/ directory, ship.
#
# This file is parsed at compile time by the package's build.rs and
# baked into the binary, so a `cargo install freenet-git` of any
# version automatically knows how to read all prior versions' repos.

# (No legacy entries yet — 0.1.0..=0.1.3 was the rapid pre-1.0 churn
# phase, where I (sanity) was the only person publishing repos and
# any test repos were ephemeral. Real legacy entries will accumulate
# starting from the first version after which actual users have
# published data they want to keep readable.)
