Files
zeekay 4da088118f fix: render Hanzo Vote without governance token + Hanzo white-label + SPA deploy
Crash fix (same as zoo.vote): guard addresses.deployables.VotesERC20V1 /
.VotesERC20StakedV1 and getAddressFromContractDeploymentInfo(...).address at
module load via two null-safe resolvers in NetworkConfig/networks/utils.ts, so a
missing/empty contracts addresses export renders 'not yet deployed' instead of
white-screening React (#root stayed empty -> blank page).

White-label (was leaking 'Lux DAO'): VITE_APP_NAME -> 'Hanzo DAO', favicon ->
/hanzo-logo.svg (HanzoMark glyph), og/meta description -> Hanzo DAO.

Buildable + deployable:
- package.json: add wrangler@^4.45.3 (required peer of
  @torchauth/vite-plugin-wrangler-spa, was missing -> vite config load failed),
  @emotion/styled@^11.14.1 (peer of @chakra-ui/system), @rainbow-me/rainbowkit;
  regenerate package-lock.json (old lock pinned a stale wagmi closure that
  failed to hoist @wagmi/core); drop stale pnpm-lock.yaml.
- Dockerfile: replace dev-mode 'pnpm dev' placeholder with the canonical
  multi-stage Vite SPA build served by ghcr.io/hanzoai/spa:1.2.0 on :3000.
- add .github/workflows/docker-publish.yml -> ghcr.io/hanzoai/vote on the
  self-hosted amd64 runner (mirrors zoo.vote).
2026-06-25 13:56:04 -07:00

148 lines
3.1 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link
rel="apple-touch-icon"
sizes="57x57"
href="/apple-icon-57x57.png"
/>
<link
rel="apple-touch-icon"
sizes="60x60"
href="/apple-icon-60x60.png"
/>
<link
rel="apple-touch-icon"
sizes="72x72"
href="/apple-icon-72x72.png"
/>
<link
rel="apple-touch-icon"
sizes="76x76"
href="/apple-icon-76x76.png"
/>
<link
rel="apple-touch-icon"
sizes="114x114"
href="/apple-icon-114x114.png"
/>
<link
rel="apple-touch-icon"
sizes="120x120"
href="/apple-icon-120x120.png"
/>
<link
rel="apple-touch-icon"
sizes="144x144"
href="/apple-icon-144x144.png"
/>
<link
rel="apple-touch-icon"
sizes="152x152"
href="/apple-icon-152x152.png"
/>
<link
rel="apple-touch-icon"
sizes="180x180"
href="/apple-icon-180x180.png"
/>
<link
rel="icon"
type="image/png"
sizes="192x192"
href="/android-icon-192x192.png"
/>
<link
rel="icon"
type="image/svg+xml"
href="/hanzo-logo.svg"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="96x96"
href="/favicon-96x96.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicon-16x16.png"
/>
<link
rel="manifest"
href="/manifest.json"
/>
<meta
name="msapplication-TileColor"
content="#000000"
/>
<meta
name="msapplication-TileImage"
content="/ms-icon-144x144.png"
/>
<meta
name="theme-color"
content="#000000"
/>
<meta
name="description"
content="Hanzo DAO enables transparent, accountable governance that evolves as fast as you do."
/>
<meta
property="og:url"
content="%VITE_APP_SITE_URL%"
/>
<meta
property="og:description"
content="Hanzo DAO enables transparent, accountable governance that evolves as fast as you do."
/>
<meta
property="og:type"
content="website"
/>
<meta
property="og:title"
content="%VITE_APP_NAME%"
/>
<meta
property="og:image"
content="%VITE_APP_SITE_URL%/images/hero_image.png"
/>
<meta
property="og:image:alt"
content="%VITE_APP_NAME%"
/>
<meta
property="og:site_name"
content="%VITE_APP_NAME%"
/>
<meta
name="viewport"
content="width=device-width, initial-scale=1"
/>
<meta
name="git-hash"
content="%VITE_APP_GIT_HASH%"
/>
<title>%VITE_APP_NAME%</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script
type="module"
src="/src/main.tsx"
></script>
</body>
</html>