17 Commits
Author SHA1 Message Date
Hanzo AIandzeekay 9e53916781 chore: scrub uniswap — use @luxamm/* (lux fork) only
Replace every @uniswap/* package import with @luxamm/* (lux fork
already canonical for SDK pieces). Replace app.uniswap.org URLs with
lux.exchange, uniswap.org with lux.network. Replace brand strings
(Uniswap Wallet → Lux Wallet, Uniswap Extension → Lux Extension,
Uniswap Labs → Lux Labs Inc.) where they appear in user-facing UI.
Rename handleUniswapAppDeepLink → handleLuxAppDeepLink, also rename
focusOrCreateUniswapInterfaceTab → focusOrCreateLuxInterfaceTab.

Manifest host_permissions updated to lux.exchange and *.lux.network.

Lockfile regeneration: TODO — run pnpm install to refresh after this
commit. Transitive @uniswap/* references in pnpm-lock.yaml are
upstream-package internals.

Protocol-level identifiers (UniswapMethodHandler, UniswapMethods,
UniswapOpenSidebarRequest, handleUniswapX, UniswapXOrderDetails) are
preserved because they reference wire-protocol method names
(uniswap_openSidebar) and external SDK type exports — renaming would
break upstream contracts. iOS Uniswap target directory and
uniswapteam.slack.com / github.com/Uniswap/universe doc refs are
out-of-scope per directive (separate native-build cleanup).

Same hard-banishment rule as tamagui (per feedback memory).
2026-06-10 22:35:41 -07:00
Hanzo AIandzeekay dc12b4deed fix(extension): add missing getTsconfigAliases import + publicAssetsVariant const
wxt.config.ts referenced both but neither was imported/defined.
- Import getTsconfigAliases from ./config/getTsconfigAliases
- Define publicAssetsVariant from WXT_PUBLIC_ASSETS_VARIANT env (default: prod)

Without these, wxt build fails: getTsconfigAliases is not defined.
2026-06-10 22:35:40 -07:00
Hanzo AIandzeekay 2b7990fa0c fix(extension): add missing vite-plugin-svgr + commonjs + node-polyfills + tsconfig-paths
wxt.config.ts imports these but they were never declared in package.json
(probably stripped along with tamagui cleanup or a prior cleanup pass).
Without them, `pnpm exec wxt build` fails: Cannot find module 'vite-plugin-svgr'.
2026-06-10 22:35:40 -07:00
Hanzo AIandzeekay 58e646e718 chore: scrub tamagui — use @hanzo/gui (and @hanzogui/* forks) only
Tamagui is banned per directive. Replace every import/reference with
@hanzo/gui or the @hanzogui/* equivalent. Removes:
- tamagui-loader and tamaguiPlugin from apps/extension webpack/wxt configs
- @tamagui/babel-plugin TODO block from apps/mobile/babel.config.js
- 'tamagui', '@tamagui/web' from optimizeDeps.include hints
- @tamagui/core/reset.css side-effect imports → @hanzogui/core/reset.css
- TamaguiProvider in mobile tests → GuiProvider from gui-provider
- TamaguiInput type aliases in extension Input.tsx → GuiInput
- declare module 'tamagui' in env.d.ts → declare module '@hanzo/gui' (uses GuiGroupNames)
- '.tamagui' ignore patterns in .gitignore / .fingerprintignore
- 'tamagui-loader' from .depcheckrc

Source files: 18 .ts/.tsx files updated to import from @hanzo/gui /
@hanzogui packages. Tests + config: 4 files updated to drop
tamagui-specific behavior. Docs (LLM.md, README.md, RABBY_FEATURES.md):
updated to reflect new stack.

No tamagui entries remain in any package.json.
2026-06-10 22:35:40 -07:00
Hanzo AIandzeekay 64268180bf fix(extension): repair svg-import-fix transform body + restore optimizeDeps wrapper
The transform function for the 'svg-import-fix' plugin was missing its body
and return statement. The list of bundled deps that follows ('tamagui',
'@tamagui/web', etc.) was orphaned without an optimizeDeps.include wrapper.
Restored both:
- transform body returns code with import { ReactComponent as N } from '*.svg'
- optimizeDeps.include array properly opened/closed around the dep list
2026-06-10 22:35:40 -07:00
Hanzo AIandzeekay 79a4645aac fix(extension): remove orphaned ternary fragment from wxt.config.ts
Lines 110-115 contained a leftover dynamic-manifest ternary fragment
with no condition — broke parse and prevented `pnpm exec wxt build`
from running. Drop the dead code; manifest defines stay in the inline
manifest field above and tenant overlays via manifest.overlay.json.
2026-06-10 22:35:40 -07:00
Hanzo AI 0a9e126583 chore(license): add LICENSE + license fields (GPL-3.0-or-later)
Red review flagged that the 461 .ts files in pkgs/wallet/src/ are
fork-derived from upstream Uniswap Wallet (GPL-3 + BUSL hybrid) but
this repo had no LICENSE file at root and 4 of 7 pkg.jsons were
missing the license field. Distributing the binary without a LICENSE
file violates GPL-3 §4-5; downstream white-labels (<tenant>, Zoo)
inherit the violation.

LICENSE copied verbatim from luxfi/exchange (the canonical GPL-3
text already used across the lux ecosystem). license fields added
to: root package.json, apps/web/package.json, apps/extension/package.json,
pkgs/wallet/package.json. The other three (apps/mobile, pkgs/brand,
pkgs/analytics) already declared GPL-3.

Resolves Red finding RED-3 (HIGH severity).
2026-04-30 11:55:57 -07:00
Hanzo AI bf5972ffe3 feat(analytics): provider-pluggable AnalyticsDriver, strip direct provider deps
@luxfi/wallet-analytics mirrors the abstraction the parallel exchange Blue
landed at ~/work/lux/exchange/pkgs/utilities/src/telemetry/analytics/backend.ts.
No third-party SDK is imported by this module — delivery is owned by an
AnalyticsDriver registered via setAnalyticsDriver(...). Hanzo Insights is
the intended default driver; white-labels swap drivers at boot.

Public surface (init/track/identify/Identify/getUserId/setDeviceId/flush)
matches what wallet call sites already expect, so swapping providers does
not require diff-ing 200+ sendAnalyticsEvent(...) sites.

Stripped from package.json (zero direct provider deps now in our shipped
manifests):
  apps/extension: @datadog/browser-rum
  apps/mobile:    @amplitude/analytics-react-native
                  @datadog/mobile-react-native
                  @datadog/mobile-react-navigation
                  @datadog/datadog-ci

Both apps now declare workspace deps on @luxfi/wallet-analytics and
@luxfi/wallet-brand. The 6 source files that still call datadogRum / DdSdk
directly are upstream-shaped and broken on other axes (`@universe/*`,
`wallet/*` referenced as bare specifiers); they will be replaced with
@luxfi/wallet-analytics calls during the apps refactor.
2026-04-30 11:47:26 -07:00
Hanzo AI 7ee1612c19 fix: kill stale workspace tsconfig refs after pkgs strip
The 01b6ad2b strip removed the upstream packages/* and config/tsconfig/* dirs
but left the old `references` arrays pointing at deleted paths, breaking
typecheck. Reset:

- pkgs/wallet/tsconfig.json now extends ../../tsconfig.base.json directly,
  excludes test files (no @types/jest in this scope), no stale refs.
- apps/{extension,mobile}/tsconfig.json drop refs to packages/* (which never
  existed in this monorepo — those were upstream paths) and reference
  ../../pkgs/wallet only.

apps/web builds clean. pkgs/wallet typecheck still surfaces ~5000 errors
from `@l.x/*` npm packages shipping raw .ts (upstream publishing bug —
documented in LLM.md, not lux/wallet's responsibility to patch).
2026-04-30 11:47:00 -07:00
Hanzo AI 01b6ad2b97 refactor: strip duplicate pkgs, consume @l.x/* from npm — keep only pkgs/wallet (canonical @luxfi/wallet bones)
- Delete pkgs/{analytics,api,config,eslint-config,gating,lx,notifications,
  prices,sessions,ui,utilities} — all identical to ~/work/lux/exchange
  canonical (MD5-matched). Now published to npm at @l.x/*; consume from
  there instead of vendoring.
- pkgs/wallet remains — this IS @luxfi/wallet (the uniswap-style extension
  + mobile wallet bones). Published at 1.0.10.
- Rewrite 3553 bare-path imports (uniswap/src/, ui/src/, utilities/src/,
  lx/src/, lux/src/) → explicit @l.x/* across 725 files.
- apps/{extension,mobile}/package.json: workspace:^ → npm ^versions for
  all @l.x/* / @luxfi/eslint-config; only @luxfi/wallet stays workspace.
- apps/{extension,mobile}/.eslintrc.js: RULES_DIR → node_modules/@l.x/lx/eslint_rules.

~315K line deletion. One canonical home: ~/work/lux/exchange.
2026-04-23 17:58:21 -07:00
Hanzo AI bb6d128f07 rebrand: use ▼ as default brand placeholder
Default fallback brand shows ▼ Wallet / ▼ Extension instead of
Lux Wallet. Extension manifest defaults are now brand-neutral.
JSDoc examples cleaned to be brand-neutral.
2026-04-12 13:27:47 -07:00
Hanzo AI 0c551aa04c chore: pin exact versions — react 19.2.5, vite 8.0.8, ts 5.9.3, pnpm 10.11.0, @hanzo/gui 4.3.2
One and one version only. No carets, no tildes.
2026-04-12 13:15:41 -07:00
Hanzo AI 9a3afa39ed fix: remove nx prepare/postinstall, fix @l.x/websocket, wallet web builds
- pkgs/lx, apps/extension: nx prepare removed
- apps/extension: postinstall removed
- @l.x/websocket ref removed (doesn't exist)
- pkgs/api: prepare removed
- Trailing comma JSON fixes
- pnpm install succeeds, wallet-web builds (Next.js static)
2026-04-12 11:47:04 -07:00
Hanzo AI 2a652ad36c fix: resolve all workspace refs, fix JSON trailing commas, @hanzo/gui 4.3.0
- @l.x/websocket removed (doesn't exist)
- @universe/* -> @l.x/* workspace refs fixed
- vitest-presets/jest-presets removed (don't exist)
- Trailing commas fixed in 3 package.json files
- @hanzo/gui pinned to 4.3.0 (4.3.1 has broken fake-react-native dep)
2026-04-12 11:33:41 -07:00
Hanzo AI 8aa57d6df8 security: zero @uniswap deps — all forked to @luxamm/*
Supply chain hardening:
- @uniswap/sdk-core -> @luxamm/sdk-core
- @uniswap/v3-sdk -> @luxamm/v3-sdk
- @uniswap/v4-sdk -> @luxamm/v4-sdk
- @uniswap/universal-router-sdk -> @luxamm/universal-router-sdk
- @uniswap/analytics -> @luxamm/analytics
- @uniswap/analytics-events -> @luxamm/analytics-events
- @uniswap/client-* -> @luxamm/client-*
- @uniswap/ethers-rs-mobile -> @luxamm/ethers-rs-mobile
- Package names: @uniswap/extension -> @luxfi/extension
- Package names: @uniswap/mobile -> @luxfi/mobile
- 48 source files updated (imports)
- Removed broken @uniswap/eslint-config workspace refs
2026-04-12 11:29:44 -07:00
Hanzo AI d5a797fcef refactor: unify on @hanzogui/*, bump @hanzo/gui 4.3.1, fix branding
- @tamagui/babel-plugin -> @hanzogui/babel-plugin in mobile
- @hanzo/gui 2.0.3/2.0.6 -> 4.3.1 in pkgs/lx + pkgs/ui
- mobile app.json: "Lux Exchange" -> "Lux Wallet"
- extension manifest: "Uniswap Extension" -> "Lux Wallet"
- extension wxt.config: parameterize via BRAND_EXTENSION_NAME env
2026-04-12 11:25:41 -07:00
Hanzo AI 78b18797d5 init: extract wallet from lux/exchange monorepo
Copies apps/extension, apps/mobile and 10 pkgs (wallet, ui, config,
utilities, sessions, gating, notifications, analytics, eslint-config,
prices) into a standalone pnpm workspace.  Resolves merge conflict
markers in extension and mobile package.json files, strips build
artifacts (.wxt, .output, Pods).
2026-04-11 01:59:19 -07:00