Highlights
Correctness release. No new features, no dependency majors — 9 commits across 8 files, all fixing things that were silently broken.
- Dead RPC endpoints replaced — Blast's Starknet RPC is decommissioned. It returns a well-formed JSON-RPC error envelope (
-32000) rather than refusing the connection, so callers failed with confusing parse errors instead of a clear "unreachable". Fixed inwebsocket.tsfallbacks andAGENTS.md. mainnetForktype widening fixed —supportedChains.tsassertedmainnetForkas chains.Chain, widening thenetwork: "devnet"literal tostringand breaking the literal-type indexingcontract.tsdepends on. Any project targetingmainnetForkfailedcheck-typeswith 9 errors.- README version drift now machine-asserted — the "Compatible versions" block had been wrong for ~6 months, telling users to install Scarb
2.15.1against a template needing2.20.0. Corrected and bound to.tool-versionsby CI. - CI path filters corrected — root
.tool-versions,package.jsonandyarn.lockwere in no filter, so toolchain bumps skipped CI entirely. Workflow changes now also get CI on pull requests. - Toolchain guardrails —
starknet-foundry/snforge_stdversion-pair check,openzeppelin_interfacesbounded to the 2.x line,should_paniccoverage on the Cairo gate.
Note on the shared Alchemy RPC key
The template ships a shared public demo endpoint so it works on first run. It is an RPC gateway key, not a signing key. For anything beyond a first run — especially workshops, where a whole room shares one rate limit — get your own free Alchemy key and set RPC_URL_SEPOLIA / RPC_URL_MAINNET.
What's Changed
- chore(sync): drop stale P rules for files deleted upstream by @tu11aa in #729
- test(cairo): add should_panic coverage to the contract gate by @tu11aa in #731
- ci: Add check to ensure starknet-foundry and snforge_std versions are in sync by @tu11aa in #732
- chore(cairo): bound openzeppelin_interfaces to the 2.x line by @tu11aa in #733
- docs(readme): correct Compatible versions and assert it against .tool-versions by @tu11aa in #734
- fix(ci): make README compat-block version asserts heading-level agnostic by @tu11aa in #735
- fix(ci): add root-level dependency files to Next.js CI path filters by @tu11aa in #736
- fix: widen-safe mainnetFork typing and replace dead Blast RPC endpoints by @tu11aa in #737
- fix: run CI on pull requests that change workflow files by @tu11aa in #738
Full Changelog: v3.1.0...v3.1.1