mirror of
https://github.com/Twigpine/openlaunch.git
synced 2026-11-10 17:57:44 -10:00
Every per-chain value now comes from a Record<ChainKey, …> keyed off a pure chain list (src/lib/chainKeys.ts), so adding a chain fails the typecheck until it has its RPC env, explorer, deploy block, swap site, stock source, GITLAWB address and form copy. Before, ~25 two-way ternaries sent any non-Base chain down the Robinhood arm (RPC env, deploy block, stock registry, copy), and the sitemap, health route and posts regex hardcoded both chain ids or names. - chainKeys.ts: keys, ids, labels, explorers, isChainKey/chainKeyOf/chainKeyOr, chainList for copy; seo.ts reuses it instead of a second ChainKey - server env lookups (RPC, deploy block) and NEXT_PUBLIC dev RPCs as records (literal process.env reads kept so Next still inlines them) - stocksServer: explicit STOCK_SOURCE per chain; unknown chains get no stocks - GITLAWB_ADDRESSES allows null; the gitlawb SQL match is built from it - wagmi config, chain toggles, network glyphs, badges, locker proof links and hero per-chain counts all map over CHAIN_KEYS - schema: drop the chain_id DEFAULT 8453 so an insert without a chain fails instead of being filed under Base (every insert already names chain_id) - chainKeys.test.ts guards against new chain-name branches and hardcoded ids No behaviour change for Base or Robinhood.