Lux Bridge is core network infrastructure meant for OSS developers to
build on, so it moves from the proprietary Lux Ecosystem License
(patent-protected tier) to BSD 3-Clause — the same permissive license
the rest of the Lux core stack carries (cli, sdk, genesis). Also
unifies the seven per-package license fields (MIT/ISC/BSD mixed) onto
the one repository license. No vendored modified upstream, so no
separate NOTICE is owed; third-party deps keep their licenses through
the module graph.
Squash of the local main lineage onto the canonical origin/main. Net tree only
(62 files): stale docs pages removed, tenant config + tests updated, minor Go
fixes, refreshed opnet-watcher build. No third-party white-label branding in
code or history.
Co-authored-by: Hanzo Dev <[email protected]>
Env-parametric specs covering bridge.lux.network (and bridge.zoo.network
+ future tenants). Mirrors the wider Lux e2e env routing convention:
E2E_ENV=local (default) → http://localhost:3001 (auto-boots vite preview)
E2E_ENV=dev → https://bridge.lux-dev.network
E2E_ENV=test → https://bridge.lux-test.network
E2E_ENV=main → https://bridge.lux.network
BRIDGE_TENANT=zoo → https://bridge.zoo.network (mainnet only)
smoke.spec.ts (6 cases, ~16s):
1. Renders, title matches brand, SVG brand logo from @luxfi/logo
2. From-chain selector has ≥ 2 options
3. From-asset selector has ≥ 2 options after switching to Ethereum
(default chain Lux only has the native LUX asset)
4. Connect-wallet button visible + clickable (no real wallet connect)
5. Typing an amount updates the "You receive" estimate via useSwap
6. Production gate: served HTML + JS bundles free of `DEADBEEF`
(the dev-only stub MPC display address)
multi-tenant.spec.ts (skips unless E2E_ENV=main):
- For each tenant in the registry, probe DNS, navigate, assert
document.title and the --brand-primary CSS variable set by
applyBrandMetadata reflect the tenant's pinned brand block.
Playwright config auto-boots `vite preview` on :3001 from app/bridge/
when E2E_ENV=local, so `pnpm test:smoke` is one-step after `pnpm build`.
README documents the build prereq and the runner contract.
Out of scope (TODOs in code):
- Real wallet connect (Playwright wallet mocking is a separate PR)
- Real backend swap submit (prod backend not reliably reachable from CI)
- Visual regression / screenshot diffs (separate PR)