Summary
Add strict environment validation for coordinator, resolver, relayer, and frontend builds so misconfigured testnet/mainnet deployments fail fast.
Context
- Multiple packages read deployment-critical env vars directly from
process.env or Vite envs.
- Mainnet is intentionally disabled until audit, so accidental
VITE_MAINNET_ENABLED=true or missing testnet contract ids should be obvious in CI/deploy logs.
- The coordinator already depends on
zod; a shared validation pattern can reduce runtime surprises.
Scope
- Add env schema validation to coordinator and resolver startup.
- Add frontend build-time checks for required testnet config and guarded mainnet enablement.
- Add relayer validation for RPC URL, contract address, and timeout variables used by health/refund paths.
- Document required env vars in
env.example or package READMEs.
Acceptance criteria
Pointers
coordinator/src/config.ts
resolver/src/config.ts
relayer/src/index.ts
relayer/src/phase6-bridge-service.ts
frontend/src/config/networks.ts
env.example
docs/DEPLOYMENT.md
Complexity
Medium (configuration safety across packages)
Summary
Add strict environment validation for coordinator, resolver, relayer, and frontend builds so misconfigured testnet/mainnet deployments fail fast.
Context
process.envor Vite envs.VITE_MAINNET_ENABLED=trueor missing testnet contract ids should be obvious in CI/deploy logs.zod; a shared validation pattern can reduce runtime surprises.Scope
env.exampleor package READMEs.Acceptance criteria
VITE_MAINNET_ENABLED=true.Pointers
coordinator/src/config.tsresolver/src/config.tsrelayer/src/index.tsrelayer/src/phase6-bridge-service.tsfrontend/src/config/networks.tsenv.exampledocs/DEPLOYMENT.mdComplexity
Medium (configuration safety across packages)