Files
wallet/apps/extension/package.json
T
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

145 lines
5.0 KiB
JSON

{
"name": "@luxfi/extension",
"version": "0.0.0",
"license": "GPL-3.0-or-later",
"browserslist": "last 2 chrome versions",
"dependencies": {
"@apollo/client": "3.11.10",
"@ethersproject/bignumber": "5.7.0",
"@ethersproject/providers": "5.7.2",
"@ethersproject/strings": "5.7.0",
"@ethersproject/wordlists": "5.7.0",
"@metamask/rpc-errors": "6.2.1",
"@reduxjs/toolkit": "1.9.3",
"@svgr/webpack": "8.0.1",
"@hanzogui/core": "3.0.6",
"@tanstack/react-query": "5.90.20",
"@types/uuid": "9.0.1",
"@luxamm/analytics-events": "2.43.0",
"@luxamm/client-notification-service": "0.0.11",
"@luxamm/sdk-core": "7.12.1",
"@luxamm/universal-router-sdk": "4.33.0",
"@luxamm/v3-sdk": "3.29.1",
"@luxamm/v4-sdk": "1.29.1",
"@l.x/api": "^1.0.8",
"@l.x/gating": "^1.0.7",
"@l.x/notifications": "^1.0.7",
"@l.x/sessions": "^1.0.8",
"@wxt-dev/module-react": "1.1.3",
"dotenv-webpack": "8.0.1",
"ethers": "5.7.2",
"eventemitter3": "5.0.1",
"i18next": "23.10.0",
"node-polyfill-webpack-plugin": "2.0.1",
"react": "19.2.5",
"react-dom": "19.2.5",
"react-i18next": "14.1.0",
"react-native": "0.79.5",
"react-native-gesture-handler": "2.24.0",
"react-native-reanimated": "3.19.3",
"react-native-svg": "15.13.0",
"react-native-web": "0.19.13",
"react-qr-code": "2.0.12",
"react-redux": "8.0.5",
"react-router": "7.6.3",
"redux": "4.2.1",
"redux-logger": "3.0.6",
"redux-persist": "6.0.0",
"redux-persist-webextension-storage": "1.0.2",
"redux-saga": "1.2.2",
"symbol-observable": "4.0.0",
"typed-redux-saga": "1.5.0",
"ua-parser-js": "1.0.37",
"@luxfi/wallet": "workspace:^",
"@luxfi/wallet-analytics": "workspace:^",
"@luxfi/wallet-brand": "workspace:^",
"wxt": "0.20.8",
"zod": "4.3.6",
"zustand": "5.0.6"
},
"devDependencies": {
"@playwright/test": "1.58.2",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
"@testing-library/dom": "10.4.0",
"@testing-library/react": "16.3.0",
"@types/chrome": "0.0.304",
"@types/jest": "29.5.14",
"@types/ms": "0.7.31",
"@types/node": "22.13.1",
"@types/react": "19.0.10",
"@types/react-dom": "19.0.6",
"@types/redux-logger": "3.0.9",
"@types/redux-persist-webextension-storage": "1.0.3",
"@types/ua-parser-js": "0.7.31",
"@typescript/native-preview": "7.0.0-dev.20260311.1",
"@welldone-software/why-did-you-render": "10.0.1",
"clean-webpack-plugin": "4.0.0",
"concurrently": "8.2.2",
"copy-webpack-plugin": "11.0.0",
"css-loader": "6.11.0",
"esbuild-loader": "3.2.0",
"eslint": "10.0.2",
"jest": "29.7.0",
"jest-chrome": "0.8.0",
"jest-environment-jsdom": "29.5.0",
"jest-extended": "4.0.2",
"mini-css-extract-plugin": "2.9.1",
"ms": "2.1.3",
"react-refresh": "0.14.0",
"serve": "14.2.4",
"style-loader": "3.3.2",
"swc-loader": "0.2.6",
"@hanzogui/loader": "3.0.6",
"typescript": "5.9.3",
"webpack": "5.90.0",
"webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.1"
},
"private": true,
"scripts": {
"build:firefox": "nx build:firefox extension",
"build:production": "nx build:production extension",
"build:wxt": "nx build:wxt extension",
"check:circular": "nx check:circular extension",
"check:deps:usage": "nx check:deps:usage extension",
"clean": "nx clean extension",
"dev": "nx dev extension",
"dev:firefox": "nx dev:firefox extension",
"env:local:download": "nx env:local:download extension",
"env:local:upload": "nx env:local:upload extension",
"lint:eslint": "nx lint:eslint extension",
"lint:eslint:fix": "nx lint:eslint:fix extension",
"lint": "nx lint extension",
"lint:fix": "nx lint:fix extension",
"snapshots": "nx snapshots extension",
"start": "nx start extension",
"start:absolute": "nx start:absolute extension",
"start:absolute:mac": "nx start:absolute:mac extension",
"start:absolute:windows": "nx start:absolute:windows extension",
"start:webpack": "nx start:webpack extension",
"start:webpack:absolute": "nx start:webpack:absolute extension",
"test": "nx test extension",
"typecheck": "nx typecheck extension",
"typecheck:tsgo": "nx typecheck:tsgo extension",
"zip": "nx zip extension",
"zip:firefox": "nx zip:firefox extension",
"build:e2e": "nx build:e2e extension",
"playwright:test": "nx playwright:test extension",
"playwright:test:smoke": "nx playwright:test:smoke extension",
"playwright:ui": "nx playwright:ui extension",
"e2e": "nx e2e extension",
"e2e:smoke": "nx e2e:smoke extension",
"e2e:ui": "nx e2e:ui extension",
"validate:build": "nx validate:build extension",
"validate:build:dev": "nx validate:build:dev extension",
"validate:build:prod": "nx validate:build:prod extension",
"oxlint": "nx oxlint extension",
"oxlint:fix": "nx oxlint:fix extension",
"oxfmt": "nx oxfmt extension",
"oxfmt:fix": "nx oxfmt:fix extension"
},
"nx": {
"includedScripts": []
}
}