Skip to main content

Session — the launchpad on testnet, with an interface

Closed 16 Sep 2026. The launchpad is live on Arbitrum Sepolia with a web interface that ships from master. Next thread: hooks.md.

What was done

  • web/ — every screen: launch list, create, launch page with a curve chart and a price chart, curve and pool trading through the router, graduation retry, fees. React + Vite + wagmi + Mantine.
  • Deployed to Arbitrum Sepolia by hand (make sepolia-deploy), 0.0028 ETH, block 309500438, verified on chain rather than from the script's output. WETH only, graduates at 0.01.
  • make dev brings up chain, contracts and web in one command, reusing whatever is already there.
  • Vercel ships the app and the internal docs from master, configured entirely in the repo.
  • notes/ARCHITECTURE.md gained four Mermaid diagrams: the contract map, a launch end to end, its states, and today's seams against the per-launch ones experiments need.

Decided in passing — do not relitigate

  • Estimates come from simulating the router call where any swap is involved, and from the curve where none is. There is no Uniswap quoter on the local chain, and a simulation is exact across every leg — including v4 pool swaps, where it also spares us reimplementing the maths.
  • ABIs in the web are hand-written. A build then never needs forge, which is what lets Vercel build it at all. A drifted signature fails loudly on the first read.
  • Uncollected pool fees are read by simulating collectFees through eth_simulateV1.
  • The price chart replays curve events rather than storing history: spotPrice is reconstructible from Bought/Sold, exactly, and pool points come from each Swap's sqrtPriceX96.
  • D8 reversed twice in one day and landed on public: the internal docs are hosted unprotected, by the developer's choice, having been shown what it exposes. notes/ is published writing now.
  • The chain is chosen at build time, by branch (D30), which is what makes mainnet the same commit.

Still open in this thread

  • No transaction has ever been signed through a wallet. ~0.012 ETH closes it on Sepolia.
  • The rhubarb repo (../launchpad) is mid-change and uncommitted: web/vercel.json, a .gitignore exception and deploy/42161.json, all needed for its automatic deploys — and the developer has since copied web/ to web-legacy/ for a redesign. The rhub-site Vercel project's root directory is web, and its first automatic deploy will go straight to rhubarb.money.
  • The browser tab still says "Launchpad (dev)".
  • The web has no tests. make check needs a local deploy first, because the typecheck imports the generated address file.