mirror of
https://github.com/luxfi/wallet.git
synced 2026-07-27 03:37:41 +00:00
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.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
const restrictedGlobals = require('confusing-browser-globals')
|
||||
const rulesDirPlugin = require('eslint-plugin-rulesdir')
|
||||
rulesDirPlugin.RULES_DIR = '../../pkgs/lx/eslint_rules'
|
||||
rulesDirPlugin.RULES_DIR = '../../node_modules/@l.x/lx/eslint_rules'
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { type BrowserContext, test as base } from '@playwright/test'
|
||||
import { createExtensionContext } from 'e2e/fixtures/extension-context'
|
||||
import { completeOnboarding } from 'e2e/utils/onboarding-helpers'
|
||||
import { waitForExtensionLoad } from 'e2e/utils/wait-for-extension'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
|
||||
interface OnboardedExtensionFixtures {
|
||||
context: BrowserContext
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect } from '@playwright/test'
|
||||
import { freshExtensionTest as test } from 'e2e/fixtures/extension.fixture'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { sleep } from 'utilities/src/time/timing'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import { sleep } from '@l.x/utils/src/time/timing'
|
||||
|
||||
test.describe('Basic Extension Setup', () => {
|
||||
test('extension loads successfully', async ({ context, extensionId }) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { expect } from '@playwright/test'
|
||||
import { freshExtensionTest as test } from 'e2e/fixtures/extension.fixture'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
|
||||
test.describe('Extension Onboarding Flow', () => {
|
||||
test('onboarding tab opens automatically on fresh install', async ({ context }) => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { BrowserContext, Page } from '@playwright/test'
|
||||
import { sleep } from 'utilities/src/time/timing'
|
||||
import { sleep } from '@l.x/utils/src/time/timing'
|
||||
|
||||
export async function openExtensionSidebar(context: BrowserContext, extensionId: string): Promise<Page> {
|
||||
const sidebarUrl = `chrome-extension://${extensionId}/sidepanel.html`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { BrowserContext, Page } from '@playwright/test'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { sleep } from 'utilities/src/time/timing'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import { sleep } from '@l.x/utils/src/time/timing'
|
||||
|
||||
const TEST_PASSWORD = 'TestPassword123!'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* oxlint-disable typescript/no-explicit-any -- e2e test file */
|
||||
import type { BrowserContext } from '@playwright/test'
|
||||
import { sleep } from 'utilities/src/time/timing'
|
||||
import { sleep } from '@l.x/utils/src/time/timing'
|
||||
|
||||
export async function waitForExtensionLoad(
|
||||
context: BrowserContext,
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'wallet/jest-package-mocks'
|
||||
import 'config/jest-presets/ui/ui-package-mocks'
|
||||
import 'react-native-gesture-handler/jestSetup'
|
||||
import { chrome } from 'jest-chrome'
|
||||
import { AppearanceSettingType } from 'uniswap/src/features/appearance/slice'
|
||||
import { AppearanceSettingType } from '@l.x/lx/src/features/appearance/slice'
|
||||
|
||||
process.env.IS_UNISWAP_EXTENSION = true
|
||||
|
||||
@@ -99,7 +99,7 @@ jest.mock('wallet/src/features/focus/useIsFocused', () => {
|
||||
})
|
||||
|
||||
const mockAppearanceSetting = AppearanceSettingType.System
|
||||
jest.mock('uniswap/src/features/appearance/hooks', () => {
|
||||
jest.mock('@l.x/lx/src/features/appearance/hooks', () => {
|
||||
return {
|
||||
useCurrentAppearanceSetting: () => mockAppearanceSetting,
|
||||
useSelectedColorScheme: () => 'light',
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
"@luxamm/universal-router-sdk": "4.33.0",
|
||||
"@luxamm/v3-sdk": "3.29.1",
|
||||
"@luxamm/v4-sdk": "1.29.1",
|
||||
"@l.x/api": "workspace:^",
|
||||
"@l.x/gating": "workspace:^",
|
||||
"@l.x/notifications": "workspace:^",
|
||||
"@l.x/sessions": "workspace:^",
|
||||
"@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",
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import React from 'react'
|
||||
import { AutoLockProvider } from 'src/app/components/AutoLockProvider'
|
||||
import { render } from 'src/test/test-utils'
|
||||
import { FiatCurrency } from 'uniswap/src/features/fiatCurrency/constants'
|
||||
import { Language } from 'uniswap/src/features/language/constants'
|
||||
import { DeviceAccessTimeout } from 'uniswap/src/features/settings/constants'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { FiatCurrency } from '@l.x/lx/src/features/fiatCurrency/constants'
|
||||
import { Language } from '@l.x/lx/src/features/language/constants'
|
||||
import { DeviceAccessTimeout } from '@l.x/lx/src/features/settings/constants'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
// Mock dependencies
|
||||
jest.mock('uniswap/src/extension/useIsChromeWindowFocused')
|
||||
jest.mock('utilities/src/logger/logger')
|
||||
jest.mock('@l.x/lx/src/extension/useIsChromeWindowFocused')
|
||||
jest.mock('@l.x/utils/src/logger/logger')
|
||||
jest.mock('src/app/hooks/useIsWalletUnlocked', () => ({
|
||||
useIsWalletUnlocked: jest.fn(),
|
||||
isWalletUnlocked: null,
|
||||
@@ -16,7 +16,7 @@ jest.mock('src/app/hooks/useIsWalletUnlocked', () => ({
|
||||
|
||||
// Import mocked modules
|
||||
import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked'
|
||||
import { useIsChromeWindowFocused } from 'uniswap/src/extension/useIsChromeWindowFocused'
|
||||
import { useIsChromeWindowFocused } from '@l.x/lx/src/extension/useIsChromeWindowFocused'
|
||||
|
||||
const mockUseIsChromeWindowFocused = jest.mocked(useIsChromeWindowFocused)
|
||||
const mockUseIsWalletUnlocked = jest.mocked(useIsWalletUnlocked)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { PropsWithChildren, useEffect, useRef } from 'react'
|
||||
import { useSelector } from 'react-redux'
|
||||
import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked'
|
||||
import { useIsChromeWindowFocused } from 'uniswap/src/extension/useIsChromeWindowFocused'
|
||||
import { selectDeviceAccessTimeoutMinutes } from 'uniswap/src/features/settings/selectors'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { useIsChromeWindowFocused } from '@l.x/lx/src/extension/useIsChromeWindowFocused'
|
||||
import { selectDeviceAccessTimeoutMinutes } from '@l.x/lx/src/features/settings/selectors'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
export const AUTO_LOCK_ALARM_NAME = 'AutoLockAlarm'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { forwardRef } from 'react'
|
||||
import { Input as TamaguiInput, InputProps as TamaguiInputProps } from 'ui/src'
|
||||
import { inputStyles } from 'ui/src/components/input/utils'
|
||||
import { fonts } from 'ui/src/theme/fonts'
|
||||
import { Input as TamaguiInput, InputProps as TamaguiInputProps } from '@l.x/ui/src'
|
||||
import { inputStyles } from '@l.x/ui/src/components/input/utils'
|
||||
import { fonts } from '@l.x/ui/src/theme/fonts'
|
||||
|
||||
export type InputProps = {
|
||||
large?: boolean
|
||||
|
||||
@@ -3,8 +3,8 @@ import { useTranslation } from 'react-i18next'
|
||||
import { TextInput } from 'react-native'
|
||||
import { Input, InputProps } from 'src/app/components/Input'
|
||||
import { useShouldShowBiometricUnlock } from 'src/app/features/biometricUnlock/useShouldShowBiometricUnlock'
|
||||
import { Flex, FlexProps, IconProps, Text, TouchableArea } from 'ui/src'
|
||||
import { Eye, EyeOff, Fingerprint } from 'ui/src/components/icons'
|
||||
import { Flex, FlexProps, IconProps, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { Eye, EyeOff, Fingerprint } from '@l.x/ui/src/components/icons'
|
||||
import { getPasswordStrengthTextAndColor, PasswordStrength } from 'wallet/src/utils/password'
|
||||
|
||||
export const PADDING_STRENGTH_INDICATOR = 76
|
||||
|
||||
@@ -3,15 +3,15 @@ import { useQuery } from '@tanstack/react-query'
|
||||
import { provideUniswapIdentifierService } from '@universe/api'
|
||||
import { uniswapIdentifierQuery } from '@universe/sessions'
|
||||
import { useEffect } from 'react'
|
||||
import { useIsDarkMode } from 'ui/src'
|
||||
import { DisplayNameType } from 'uniswap/src/features/accounts/types'
|
||||
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
|
||||
import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
|
||||
import { useCurrentLanguage } from 'uniswap/src/features/language/hooks'
|
||||
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
|
||||
import { ExtensionUserPropertyName, setUserProperty } from 'uniswap/src/features/telemetry/user'
|
||||
import { useIsDarkMode } from '@l.x/ui/src'
|
||||
import { DisplayNameType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { useEnabledChains } from '@l.x/lx/src/features/chains/hooks/useEnabledChains'
|
||||
import { useAppFiatCurrencyInfo } from '@l.x/lx/src/features/fiatCurrency/hooks'
|
||||
import { useCurrentLanguage } from '@l.x/lx/src/features/language/hooks'
|
||||
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from '@l.x/lx/src/features/settings/hooks'
|
||||
import { ExtensionUserPropertyName, setUserProperty } from '@l.x/lx/src/features/telemetry/user'
|
||||
// oxlint-disable-next-line no-restricted-imports -- Direct analytics import required for user property tracking
|
||||
import { analytics } from 'utilities/src/telemetry/analytics/analytics'
|
||||
import { analytics } from '@l.x/utils/src/telemetry/analytics/analytics'
|
||||
import { useGatingUserPropertyUsernames } from 'wallet/src/features/gating/userPropertyHooks'
|
||||
import {
|
||||
useActiveAccount,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { AnimatePresence, Flex, Text, TouchableArea } from 'ui/src'
|
||||
import { Check, CopySheets } from 'ui/src/components/icons'
|
||||
import { iconSizes, zIndexes } from 'ui/src/theme'
|
||||
import { AnimatePresence, Flex, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { Check, CopySheets } from '@l.x/ui/src/components/icons'
|
||||
import { iconSizes, zIndexes } from '@l.x/ui/src/theme'
|
||||
|
||||
export function CopyButton({ onCopyPress }: { onCopyPress: () => Promise<void> }): JSX.Element {
|
||||
const { t } = useTranslation()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { Button, Flex } from 'ui/src'
|
||||
import { ArrowRight } from 'ui/src/components/icons/ArrowRight'
|
||||
import { Button, Flex } from '@l.x/ui/src'
|
||||
import { ArrowRight } from '@l.x/ui/src/components/icons/ArrowRight'
|
||||
|
||||
export function OpenSidebarButton({
|
||||
openedSideBar,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Circle, Flex, GeneratedIcon, Text, TouchableArea } from 'ui/src'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { Circle, Flex, GeneratedIcon, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
|
||||
export function OptionCard({
|
||||
Icon,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useExtensionNavigation } from 'src/app/navigation/utils'
|
||||
import { Flex, GeneratedIcon, IconProps, Text, TouchableArea } from 'ui/src'
|
||||
import { BackArrow } from 'ui/src/components/icons'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { Flex, GeneratedIcon, IconProps, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { BackArrow } from '@l.x/ui/src/components/icons'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
|
||||
export function ScreenHeader({
|
||||
onBackClick,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SkeletonBox } from 'src/app/components/loading/SkeletonBox'
|
||||
import { Flex } from 'ui/src'
|
||||
import { Flex } from '@l.x/ui/src'
|
||||
import { WALLET_PREVIEW_CARD_MIN_HEIGHT } from 'wallet/src/components/WalletPreviewCard/WalletPreviewCard'
|
||||
|
||||
export function SelectWalletsSkeleton({ repeat = 3 }: { repeat?: number }): JSX.Element {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { ReactNode } from 'react'
|
||||
import { Anchor, Button, ButtonEmphasis, Flex, Text, TouchableArea, useSporeColors } from 'ui/src'
|
||||
import { X } from 'ui/src/components/icons'
|
||||
import { zIndexes } from 'ui/src/theme'
|
||||
import { Modal } from 'uniswap/src/components/modals/Modal'
|
||||
import { ModalNameType } from 'uniswap/src/features/telemetry/constants'
|
||||
import { Anchor, Button, ButtonEmphasis, Flex, Text, TouchableArea, useSporeColors } from '@l.x/ui/src'
|
||||
import { X } from '@l.x/ui/src/components/icons'
|
||||
import { zIndexes } from '@l.x/ui/src/theme'
|
||||
import { Modal } from '@l.x/lx/src/components/modals/Modal'
|
||||
import { ModalNameType } from '@l.x/lx/src/features/telemetry/constants'
|
||||
|
||||
export interface ModalProps {
|
||||
name: ModalNameType
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useDispatch } from 'react-redux'
|
||||
import { useSmartWalletNudges } from 'src/app/context/SmartWalletNudgesContext'
|
||||
import { ModalName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { ModalName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { SmartWalletCreatedModal } from 'wallet/src/components/smartWallet/modals/SmartWalletCreatedModal'
|
||||
import { SmartWalletEnabledModal } from 'wallet/src/components/smartWallet/modals/SmartWalletEnabledModal'
|
||||
import { SmartWalletNudge } from 'wallet/src/components/smartWallet/modals/SmartWalletNudge'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { memo } from 'react'
|
||||
import { Flex, Loader, ScrollView } from 'ui/src'
|
||||
import { useInfiniteScroll } from 'utilities/src/react/useInfiniteScroll'
|
||||
import { Flex, Loader, ScrollView } from '@l.x/ui/src'
|
||||
import { useInfiniteScroll } from '@l.x/utils/src/react/useInfiniteScroll'
|
||||
import { useActivityDataWallet } from 'wallet/src/features/activity/useActivityDataWallet'
|
||||
|
||||
export const ActivityTab = memo(function ActivityTabInner({
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { SharedEventName } from '@luxamm/analytics-events'
|
||||
import { memo, useCallback } from 'react'
|
||||
import { Flex } from 'ui/src'
|
||||
import { Flex } from '@l.x/ui/src'
|
||||
// This is intentionally imported from the native file as only the web app requires a web specific implementation
|
||||
import { NftsList } from 'uniswap/src/components/nfts/NftsList.native'
|
||||
import { NftViewWithContextMenu } from 'uniswap/src/components/nfts/NftViewWithContextMenu'
|
||||
import { NFTItem } from 'uniswap/src/features/nfts/types'
|
||||
import { ElementName, SectionName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { NftsList } from '@l.x/lx/src/components/nfts/NftsList.native'
|
||||
import { NftViewWithContextMenu } from '@l.x/lx/src/components/nfts/NftViewWithContextMenu'
|
||||
import { NFTItem } from '@l.x/lx/src/features/nfts/types'
|
||||
import { ElementName, SectionName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { useAccounts } from 'wallet/src/features/wallet/hooks'
|
||||
|
||||
export const NftsTab = memo(function NftsTabInner({ owner, skip }: { owner: Address; skip?: boolean }): JSX.Element {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
import { SpaceTokens } from 'ui/src'
|
||||
import { SpaceTokens } from '@l.x/ui/src'
|
||||
|
||||
export const SCREEN_ITEM_HORIZONTAL_PAD = '$spacing12' satisfies SpaceTokens
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { createContext, ReactNode, useCallback, useContext, useEffect, useState } from 'react'
|
||||
import { useDispatch, useSelector } from 'react-redux'
|
||||
import { useGet5792DappInfo } from 'src/app/hooks/useGet5792DappInfo'
|
||||
import { ModalName, ModalNameType } from 'uniswap/src/features/telemetry/constants'
|
||||
import { extractUrlHost } from 'utilities/src/format/urls'
|
||||
import { useEvent } from 'utilities/src/react/hooks'
|
||||
import { ONE_DAY_MS } from 'utilities/src/time/time'
|
||||
import { ModalName, ModalNameType } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { extractUrlHost } from '@l.x/utils/src/format/urls'
|
||||
import { useEvent } from '@l.x/utils/src/react/hooks'
|
||||
import { ONE_DAY_MS } from '@l.x/utils/src/time/time'
|
||||
import {
|
||||
SmartWalletDelegationAction,
|
||||
useSmartWalletDelegationStatus,
|
||||
|
||||
@@ -28,13 +28,13 @@ import { type DatadogAppNameTag } from 'src/app/datadog'
|
||||
import { onHashcashSolveCompleted, sessionInitAnalytics } from 'src/app/features/sessions/analytics'
|
||||
import { useOnCrashAppStateResetter } from 'src/store/appStateResetter'
|
||||
import { getReduxStore } from 'src/store/store'
|
||||
import { BlankUrlProvider } from 'uniswap/src/contexts/UrlContext'
|
||||
import { useCurrentLanguage } from 'uniswap/src/features/language/hooks'
|
||||
import { LocalizationContextProvider } from 'uniswap/src/features/language/LocalizationContext'
|
||||
import { getLocale } from 'uniswap/src/features/language/navigatorLocale'
|
||||
import Trace from 'uniswap/src/features/telemetry/Trace'
|
||||
import i18n, { changeLanguage } from 'uniswap/src/i18n'
|
||||
import { getLogger } from 'utilities/src/logger/logger'
|
||||
import { BlankUrlProvider } from '@l.x/lx/src/contexts/UrlContext'
|
||||
import { useCurrentLanguage } from '@l.x/lx/src/features/language/hooks'
|
||||
import { LocalizationContextProvider } from '@l.x/lx/src/features/language/LocalizationContext'
|
||||
import { getLocale } from '@l.x/lx/src/features/language/navigatorLocale'
|
||||
import Trace from '@l.x/lx/src/features/telemetry/Trace'
|
||||
import i18n, { changeLanguage } from '@l.x/lx/src/i18n'
|
||||
import { getLogger } from '@l.x/utils/src/logger/logger'
|
||||
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
|
||||
import { StatsigUserIdentifiersUpdater } from 'wallet/src/features/gating/StatsigUserIdentifiersUpdater'
|
||||
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { lazy, Suspense } from 'react'
|
||||
import { Flex } from 'ui/src'
|
||||
import { Flag } from 'ui/src/components/icons/Flag'
|
||||
import { Modal } from 'uniswap/src/components/modals/Modal'
|
||||
import { ModalName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { Flex } from '@l.x/ui/src'
|
||||
import { Flag } from '@l.x/ui/src/components/icons/Flag'
|
||||
import { Modal } from '@l.x/lx/src/components/modals/Modal'
|
||||
import { ModalName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
|
||||
const DevMenuScreen = lazy(() =>
|
||||
import('src/app/features/settings/DevMenuScreen').then((module) => ({ default: module.DevMenuScreen })),
|
||||
|
||||
@@ -39,9 +39,9 @@ import { setRouter, setRouterState } from 'src/app/navigation/state'
|
||||
import { initExtensionAnalytics } from 'src/app/utils/analytics'
|
||||
import { checksIfSupportsSidePanel } from 'src/app/utils/chrome'
|
||||
import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { ExtensionOnboardingFlow } from '@l.x/lx/src/types/screens/extension'
|
||||
import { AccountsStoreContextProvider } from 'wallet/src/features/accounts/store/provider'
|
||||
import { WalletUniswapProvider } from 'wallet/src/features/transactions/contexts/WalletUniswapContext'
|
||||
import { getReduxPersistor } from 'wallet/src/state/persistor'
|
||||
|
||||
@@ -7,13 +7,13 @@ import { ErrorElement } from 'src/app/components/ErrorElement'
|
||||
import { BaseAppContainer } from 'src/app/core/BaseAppContainer'
|
||||
import { DatadogAppNameTag } from 'src/app/datadog'
|
||||
import { initExtensionAnalytics } from 'src/app/utils/analytics'
|
||||
import { Button, Flex, Image, Text } from 'ui/src'
|
||||
import { UNISWAP_LOGO } from 'ui/src/assets'
|
||||
import { GoogleChromeLogo } from 'ui/src/components/logos/GoogleChromeLogo'
|
||||
import { iconSizes, spacing } from 'ui/src/theme'
|
||||
import { ElementName } from 'uniswap/src/features/telemetry/constants'
|
||||
import Trace from 'uniswap/src/features/telemetry/Trace'
|
||||
import { ExtensionScreens } from 'uniswap/src/types/screens/extension'
|
||||
import { Button, Flex, Image, Text } from '@l.x/ui/src'
|
||||
import { UNISWAP_LOGO } from '@l.x/ui/src/assets'
|
||||
import { GoogleChromeLogo } from '@l.x/ui/src/components/logos/GoogleChromeLogo'
|
||||
import { iconSizes, spacing } from '@l.x/ui/src/theme'
|
||||
import { ElementName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import Trace from '@l.x/lx/src/features/telemetry/Trace'
|
||||
import { ExtensionScreens } from '@l.x/lx/src/types/screens/extension'
|
||||
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks/useTestnetModeForLoggingAndAnalytics'
|
||||
|
||||
const router = createHashRouter([
|
||||
|
||||
@@ -41,13 +41,13 @@ import {
|
||||
} from 'src/background/messagePassing/messageChannels'
|
||||
import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests'
|
||||
import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy'
|
||||
import { useResetUnitagsQueries } from 'uniswap/src/data/apiClients/unitagsApi/useResetUnitagsQueries'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { isDevEnv } from 'utilities/src/environment/env'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { useInterval } from 'utilities/src/time/timing'
|
||||
import { useResetUnitagsQueries } from '@l.x/lx/src/data/apiClients/unitagsApi/useResetUnitagsQueries'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { isDevEnv } from '@l.x/utils/src/environment/env'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import { useInterval } from '@l.x/utils/src/time/timing'
|
||||
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks/useTestnetModeForLoggingAndAnalytics'
|
||||
import { getReduxPersistor } from 'wallet/src/state/persistor'
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ import { SharedQueryClient } from '@universe/api'
|
||||
import { StatsigCustomAppValue, StatsigUser } from '@universe/gating'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { makeStatsigUser } from 'src/app/core/initStatSigForBrowserScripts'
|
||||
import { StatsigProviderWrapper } from 'uniswap/src/features/gating/StatsigProviderWrapper'
|
||||
import { initializeDatadog } from 'uniswap/src/utils/datadog'
|
||||
import { uniqueIdQuery } from 'utilities/src/device/uniqueIdQuery'
|
||||
import { StatsigProviderWrapper } from '@l.x/lx/src/features/gating/StatsigProviderWrapper'
|
||||
import { initializeDatadog } from '@l.x/lx/src/utils/datadog'
|
||||
import { uniqueIdQuery } from '@l.x/utils/src/device/uniqueIdQuery'
|
||||
|
||||
export function ExtensionStatsigProvider({
|
||||
children,
|
||||
|
||||
@@ -20,9 +20,9 @@ import { UnitagIntroScreen } from 'src/app/features/unitags/UnitagIntroScreen'
|
||||
import { UnitagClaimRoutes } from 'src/app/navigation/constants'
|
||||
import { setRouter, setRouterState } from 'src/app/navigation/state'
|
||||
import { initExtensionAnalytics } from 'src/app/utils/analytics'
|
||||
import { Flex } from 'ui/src'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { usePrevious } from 'utilities/src/react/hooks'
|
||||
import { Flex } from '@l.x/ui/src'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { usePrevious } from '@l.x/utils/src/react/hooks'
|
||||
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks/useTestnetModeForLoggingAndAnalytics'
|
||||
import { useAccountAddressFromUrlWithThrow } from 'wallet/src/features/wallet/hooks'
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { StatsigClient, StatsigCustomAppValue, StatsigUser } from '@universe/gating'
|
||||
import { config } from 'uniswap/src/config'
|
||||
import { statsigBaseConfig } from 'uniswap/src/features/gating/statsigBaseConfig'
|
||||
import { getUniqueId } from 'utilities/src/device/uniqueId'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { config } from '@l.x/lx/src/config'
|
||||
import { statsigBaseConfig } from '@l.x/lx/src/features/gating/statsigBaseConfig'
|
||||
import { getUniqueId } from '@l.x/utils/src/device/uniqueId'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
export function makeStatsigUser(userID: string): StatsigUser {
|
||||
return {
|
||||
|
||||
@@ -6,23 +6,23 @@ import { EditLabelModal } from 'src/app/features/accounts/EditLabelModal'
|
||||
import { removeAllDappConnectionsForAccount } from 'src/app/features/dapp/actions'
|
||||
import { AppRoutes, SettingsRoutes, UnitagClaimRoutes } from 'src/app/navigation/constants'
|
||||
import { focusOrCreateUnitagTab, useExtensionNavigation } from 'src/app/navigation/utils'
|
||||
import { Flex, Text, TouchableArea } from 'ui/src'
|
||||
import { CopySheets, Edit, Ellipsis, Globe, TrashFilled } from 'ui/src/components/icons'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { AddressDisplay } from 'uniswap/src/components/accounts/AddressDisplay'
|
||||
import { ContextMenu, MenuOptionItem } from 'uniswap/src/components/menus/ContextMenu'
|
||||
import { ContextMenuTriggerMode } from 'uniswap/src/components/menus/types'
|
||||
import { WarningSeverity } from 'uniswap/src/components/modals/WarningModal/types'
|
||||
import { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
|
||||
import { DisplayNameType } from 'uniswap/src/features/accounts/types'
|
||||
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
|
||||
import { pushNotification } from 'uniswap/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType, CopyNotificationType } from 'uniswap/src/features/notifications/slice/types'
|
||||
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { setClipboard } from 'utilities/src/clipboard/clipboard'
|
||||
import { NumberType } from 'utilities/src/format/types'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { Flex, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { CopySheets, Edit, Ellipsis, Globe, TrashFilled } from '@l.x/ui/src/components/icons'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
import { AddressDisplay } from '@l.x/lx/src/components/accounts/AddressDisplay'
|
||||
import { ContextMenu, MenuOptionItem } from '@l.x/lx/src/components/menus/ContextMenu'
|
||||
import { ContextMenuTriggerMode } from '@l.x/lx/src/components/menus/types'
|
||||
import { WarningSeverity } from '@l.x/lx/src/components/modals/WarningModal/types'
|
||||
import { WarningModal } from '@l.x/lx/src/components/modals/WarningModal/WarningModal'
|
||||
import { DisplayNameType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { useLocalizationContext } from '@l.x/lx/src/features/language/LocalizationContext'
|
||||
import { pushNotification } from '@l.x/lx/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType, CopyNotificationType } from '@l.x/lx/src/features/notifications/slice/types'
|
||||
import { ElementName, ModalName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { setClipboard } from '@l.x/utils/src/clipboard/clipboard'
|
||||
import { NumberType } from '@l.x/utils/src/format/types'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga'
|
||||
import { useDisplayName, useSignerAccounts } from 'wallet/src/features/wallet/hooks'
|
||||
|
||||
|
||||
@@ -15,29 +15,29 @@ import { openPopup, PopupName } from 'src/app/features/popups/slice'
|
||||
import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes, UnitagClaimRoutes } from 'src/app/navigation/constants'
|
||||
import { navigate } from 'src/app/navigation/state'
|
||||
import { focusOrCreateUnitagTab, useExtensionNavigation } from 'src/app/navigation/utils'
|
||||
import { Button, Flex, Popover, ScrollView, Text, TouchableArea, useSporeColors } from 'ui/src'
|
||||
import { Ellipsis, Globe, Person, TrashFilled, WalletFilled, X } from 'ui/src/components/icons'
|
||||
import { spacing } from 'ui/src/theme'
|
||||
import { AddressDisplay } from 'uniswap/src/components/accounts/AddressDisplay'
|
||||
import { buildWrappedUrl } from 'uniswap/src/components/banners/shared/utils'
|
||||
import { UniswapWrapped2025Card } from 'uniswap/src/components/banners/UniswapWrapped2025Card/UniswapWrapped2025Card'
|
||||
import { ContextMenu, MenuOptionItem } from 'uniswap/src/components/menus/ContextMenu'
|
||||
import { ContextMenuTriggerMode } from 'uniswap/src/components/menus/types'
|
||||
import { WarningSeverity } from 'uniswap/src/components/modals/WarningModal/types'
|
||||
import { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
|
||||
import { UNISWAP_WEB_URL } from 'uniswap/src/constants/urls'
|
||||
import { AccountType, DisplayNameType } from 'uniswap/src/features/accounts/types'
|
||||
import { setHasDismissedUniswapWrapped2025Banner } from 'uniswap/src/features/behaviorHistory/slice'
|
||||
import { Platform } from 'uniswap/src/features/platforms/types/Platform'
|
||||
import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import Trace from 'uniswap/src/features/telemetry/Trace'
|
||||
import { TestID } from 'uniswap/src/test/fixtures/testIDs'
|
||||
import { ImportType } from 'uniswap/src/types/onboarding'
|
||||
import { areAddressesEqual } from 'uniswap/src/utils/addresses'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { sleep } from 'utilities/src/time/timing'
|
||||
import { Button, Flex, Popover, ScrollView, Text, TouchableArea, useSporeColors } from '@l.x/ui/src'
|
||||
import { Ellipsis, Globe, Person, TrashFilled, WalletFilled, X } from '@l.x/ui/src/components/icons'
|
||||
import { spacing } from '@l.x/ui/src/theme'
|
||||
import { AddressDisplay } from '@l.x/lx/src/components/accounts/AddressDisplay'
|
||||
import { buildWrappedUrl } from '@l.x/lx/src/components/banners/shared/utils'
|
||||
import { UniswapWrapped2025Card } from '@l.x/lx/src/components/banners/UniswapWrapped2025Card/UniswapWrapped2025Card'
|
||||
import { ContextMenu, MenuOptionItem } from '@l.x/lx/src/components/menus/ContextMenu'
|
||||
import { ContextMenuTriggerMode } from '@l.x/lx/src/components/menus/types'
|
||||
import { WarningSeverity } from '@l.x/lx/src/components/modals/WarningModal/types'
|
||||
import { WarningModal } from '@l.x/lx/src/components/modals/WarningModal/WarningModal'
|
||||
import { UNISWAP_WEB_URL } from '@l.x/lx/src/constants/urls'
|
||||
import { AccountType, DisplayNameType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { setHasDismissedUniswapWrapped2025Banner } from '@l.x/lx/src/features/behaviorHistory/slice'
|
||||
import { Platform } from '@l.x/lx/src/features/platforms/types/Platform'
|
||||
import { ModalName, WalletEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import Trace from '@l.x/lx/src/features/telemetry/Trace'
|
||||
import { TestID } from '@l.x/lx/src/test/fixtures/testIDs'
|
||||
import { ImportType } from '@l.x/lx/src/types/onboarding'
|
||||
import { areAddressesEqual } from '@l.x/lx/src/utils/addresses'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
import { sleep } from '@l.x/utils/src/time/timing'
|
||||
import { PlusCircle } from 'wallet/src/components/icons/PlusCircle'
|
||||
import { MenuContent } from 'wallet/src/components/menu/MenuContent'
|
||||
import { MenuContentItem } from 'wallet/src/components/menu/types'
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { useCallback, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { Button, Flex, Text } from 'ui/src'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { TextInput } from 'uniswap/src/components/input/TextInput'
|
||||
import { Modal } from 'uniswap/src/components/modals/Modal'
|
||||
import { AccountIcon } from 'uniswap/src/features/accounts/AccountIcon'
|
||||
import { ModalName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { shortenAddress } from 'utilities/src/addresses'
|
||||
import { Button, Flex, Text } from '@l.x/ui/src'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
import { TextInput } from '@l.x/lx/src/components/input/TextInput'
|
||||
import { Modal } from '@l.x/lx/src/components/modals/Modal'
|
||||
import { AccountIcon } from '@l.x/lx/src/features/accounts/AccountIcon'
|
||||
import { ModalName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { shortenAddress } from '@l.x/utils/src/addresses'
|
||||
import { SignerMnemonicAccount } from 'wallet/src/features/wallet/accounts/types'
|
||||
|
||||
type CreateWalletModalProps = {
|
||||
|
||||
@@ -3,17 +3,17 @@ import { useTranslation } from 'react-i18next'
|
||||
import { useDispatch } from 'react-redux'
|
||||
import { UnitagClaimRoutes } from 'src/app/navigation/constants'
|
||||
import { focusOrCreateUnitagTab } from 'src/app/navigation/utils'
|
||||
import { Button, Flex, Text } from 'ui/src'
|
||||
import { Person } from 'ui/src/components/icons'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { TextInput } from 'uniswap/src/components/input/TextInput'
|
||||
import { Modal } from 'uniswap/src/components/modals/Modal'
|
||||
import { AccountIcon } from 'uniswap/src/features/accounts/AccountIcon'
|
||||
import { DisplayNameType } from 'uniswap/src/features/accounts/types'
|
||||
import { ModalName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { OnboardingCardLoggingName } from 'uniswap/src/features/telemetry/types'
|
||||
import { UNITAG_SUFFIX_NO_LEADING_DOT } from 'uniswap/src/features/unitags/constants'
|
||||
import { shortenAddress } from 'utilities/src/addresses'
|
||||
import { Button, Flex, Text } from '@l.x/ui/src'
|
||||
import { Person } from '@l.x/ui/src/components/icons'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
import { TextInput } from '@l.x/lx/src/components/input/TextInput'
|
||||
import { Modal } from '@l.x/lx/src/components/modals/Modal'
|
||||
import { AccountIcon } from '@l.x/lx/src/features/accounts/AccountIcon'
|
||||
import { DisplayNameType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { ModalName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { OnboardingCardLoggingName } from '@l.x/lx/src/features/telemetry/types'
|
||||
import { UNITAG_SUFFIX_NO_LEADING_DOT } from '@l.x/lx/src/features/unitags/constants'
|
||||
import { shortenAddress } from '@l.x/utils/src/addresses'
|
||||
import { CardType, IntroCard, IntroCardGraphicType } from 'wallet/src/components/introCards/IntroCard'
|
||||
import { useCanActiveAddressClaimUnitag } from 'wallet/src/features/unitags/hooks/useCanActiveAddressClaimUnitag'
|
||||
import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useMemo } from 'react'
|
||||
import { usePrevious } from 'utilities/src/react/hooks'
|
||||
import { usePrevious } from '@l.x/utils/src/react/hooks'
|
||||
import { useAccountListData } from 'wallet/src/features/accounts/useAccountListData'
|
||||
|
||||
interface AddressWithBalance {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useDispatch, useSelector } from 'react-redux'
|
||||
import { Button, Flex, Text, TouchableArea } from 'ui/src'
|
||||
import { Feedback, LikeSquare, MessageText, X } from 'ui/src/components/icons'
|
||||
import { IconSizeTokens, zIndexes } from 'ui/src/theme'
|
||||
import { Modal } from 'uniswap/src/components/modals/Modal'
|
||||
import { uniswapUrls } from 'uniswap/src/constants/urls'
|
||||
import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { Button, Flex, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { Feedback, LikeSquare, MessageText, X } from '@l.x/ui/src/components/icons'
|
||||
import { IconSizeTokens, zIndexes } from '@l.x/ui/src/theme'
|
||||
import { Modal } from '@l.x/lx/src/components/modals/Modal'
|
||||
import { uniswapUrls } from '@l.x/lx/src/constants/urls'
|
||||
import { ModalName, WalletEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { appRatingPromptedMsSelector, appRatingProvidedMsSelector } from 'wallet/src/features/wallet/selectors'
|
||||
import { setAppRating } from 'wallet/src/features/wallet/slice'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { SecretPayload } from 'wallet/src/features/wallet/Keyring/crypto'
|
||||
import { PersistedStorage } from 'wallet/src/utils/persistedStorage'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { BiometricUnlockStorageData } from 'src/app/features/biometricUnlock/BiometricUnlockStorage'
|
||||
import { assertAuthenticatorAssertionResponse } from 'src/app/features/biometricUnlock/utils/assertAuthenticatorAssertionResponse'
|
||||
import { assertPublicKeyCredential } from 'src/app/features/biometricUnlock/utils/assertPublicKeyCredential'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import {
|
||||
addEncryptedCiphertextToSecretPayload,
|
||||
convertBytesToCryptoKey,
|
||||
|
||||
@@ -2,9 +2,9 @@ import {
|
||||
BiometricUnlockStorage,
|
||||
BiometricUnlockStorageData,
|
||||
} from 'src/app/features/biometricUnlock/BiometricUnlockStorage'
|
||||
import { ReactQueryCacheKey } from 'utilities/src/reactQuery/cache'
|
||||
import type { QueryOptionsResult } from 'utilities/src/reactQuery/queryOptions'
|
||||
import { queryWithoutCache } from 'utilities/src/reactQuery/queryOptions'
|
||||
import { ReactQueryCacheKey } from '@l.x/utils/src/reactQuery/cache'
|
||||
import type { QueryOptionsResult } from '@l.x/utils/src/reactQuery/queryOptions'
|
||||
import { queryWithoutCache } from '@l.x/utils/src/reactQuery/queryOptions'
|
||||
|
||||
type BiometricUnlockCredentialQueryOptions = QueryOptionsResult<
|
||||
Awaited<BiometricUnlockStorageData | null>,
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { UseMutationResult, useMutation, useQueryClient } from '@tanstack/react-query'
|
||||
import { biometricUnlockCredentialQuery } from 'src/app/features/biometricUnlock/biometricUnlockCredentialQuery'
|
||||
import { BiometricUnlockStorage } from 'src/app/features/biometricUnlock/BiometricUnlockStorage'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
export function useBiometricUnlockDisableMutation(): UseMutationResult<void, Error, void> {
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
@@ -2,8 +2,8 @@ import { UseMutationResult, useMutation, useQueryClient } from '@tanstack/react-
|
||||
import { startNavigatorCredentialRequest } from 'src/app/features/biometricUnlock/useNavigatorCredentialAbortSignal'
|
||||
import { assertPublicKeyCredential } from 'src/app/features/biometricUnlock/utils/assertPublicKeyCredential'
|
||||
import { isUserVerifyingPlatformAuthenticatorAvailable } from 'src/app/utils/device/builtInBiometricCapabilitiesQuery'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import {
|
||||
createEmptySecretPayload,
|
||||
generateNew256BitRandomBuffer,
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ import { waitFor } from '@testing-library/react'
|
||||
import { BiometricUnlockStorage } from 'src/app/features/biometricUnlock/BiometricUnlockStorage'
|
||||
import { useChangePasswordWithBiometricMutation } from 'src/app/features/biometricUnlock/useChangePasswordWithBiometricMutation'
|
||||
import { renderHookWithProviders } from 'src/test/render'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { encodeForStorage, encrypt, generateNew256BitRandomBuffer } from 'wallet/src/features/wallet/Keyring/crypto'
|
||||
import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring'
|
||||
|
||||
@@ -14,7 +14,7 @@ jest.mock('wallet/src/features/wallet/Keyring/Keyring', () => ({
|
||||
changePassword: jest.fn(),
|
||||
},
|
||||
}))
|
||||
jest.mock('utilities/src/logger/logger', () => ({
|
||||
jest.mock('@l.x/utils/src/logger/logger', () => ({
|
||||
logger: {
|
||||
error: jest.fn(),
|
||||
},
|
||||
|
||||
+2
-2
@@ -12,8 +12,8 @@ import { Keyring } from '@luxfi/wallet/src/features/wallet/Keyring/Keyring'
|
||||
=======
|
||||
import { BiometricUnlockStorage } from 'src/app/features/biometricUnlock/BiometricUnlockStorage'
|
||||
import { startNavigatorCredentialRequest } from 'src/app/features/biometricUnlock/useNavigatorCredentialAbortSignal'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { useEvent } from 'utilities/src/react/hooks'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { useEvent } from '@l.x/utils/src/react/hooks'
|
||||
import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring'
|
||||
|
||||
export function useChangePasswordWithBiometricMutation(options?: {
|
||||
|
||||
+2
-2
@@ -14,8 +14,8 @@ import { Keyring } from '@luxfi/wallet/src/features/wallet/Keyring/Keyring'
|
||||
import { BiometricUnlockStorage } from 'src/app/features/biometricUnlock/BiometricUnlockStorage'
|
||||
import { startNavigatorCredentialRequest } from 'src/app/features/biometricUnlock/useNavigatorCredentialAbortSignal'
|
||||
import { useUnlockWithPassword } from 'src/app/features/lockScreen/useUnlockWithPassword'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { useEvent } from 'utilities/src/react/hooks'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { useEvent } from '@l.x/utils/src/react/hooks'
|
||||
import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring'
|
||||
|
||||
export function useUnlockWithBiometricCredentialMutation(): UseMutationResult<void, Error, void> {
|
||||
|
||||
@@ -7,8 +7,8 @@ import { isConnectedAccount } from 'src/app/features/dapp/utils'
|
||||
import { closePopup, PopupName } from 'src/app/features/popups/slice'
|
||||
import { backgroundToSidePanelMessageChannel } from 'src/background/messagePassing/messageChannels'
|
||||
import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { extractBaseUrl } from 'utilities/src/format/urls'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { extractBaseUrl } from '@l.x/utils/src/format/urls'
|
||||
import { useActiveAccountAddress } from 'wallet/src/features/wallet/hooks'
|
||||
|
||||
type DappContextState = {
|
||||
|
||||
@@ -6,8 +6,8 @@ import {
|
||||
ExtensionToDappRequestType,
|
||||
UpdateConnectionRequest,
|
||||
} from 'src/background/messagePassing/types/requests'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from '@l.x/lx/src/features/chains/utils'
|
||||
import { Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
import { getProviderSync } from 'wallet/src/features/wallet/context'
|
||||
|
||||
|
||||
@@ -2,18 +2,18 @@ import { JsonRpcProvider } from '@ethersproject/providers'
|
||||
import { providerErrors, serializeError } from '@metamask/rpc-errors'
|
||||
import { changeChain } from 'src/app/features/dapp/changeChain'
|
||||
import { dappStore } from 'src/app/features/dapp/store'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
|
||||
import { DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from '@l.x/lx/src/features/chains/utils'
|
||||
import { DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
|
||||
// Mock dependencies
|
||||
jest.mock('@ethersproject/providers')
|
||||
jest.mock('@metamask/rpc-errors')
|
||||
jest.mock('src/app/features/dapp/store')
|
||||
jest.mock('uniswap/src/features/telemetry/send')
|
||||
jest.mock('uniswap/src/features/chains/utils')
|
||||
jest.mock('@l.x/lx/src/features/telemetry/send')
|
||||
jest.mock('@l.x/lx/src/features/chains/utils')
|
||||
|
||||
describe('changeChain', () => {
|
||||
const mockRequestId = 'test-request-id'
|
||||
|
||||
@@ -2,11 +2,11 @@ import { JsonRpcProvider } from '@ethersproject/providers'
|
||||
import { providerErrors, serializeError } from '@metamask/rpc-errors'
|
||||
import { dappStore } from 'src/app/features/dapp/store'
|
||||
import { ChangeChainResponse, ErrorResponse } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
|
||||
import { DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from '@l.x/lx/src/features/chains/utils'
|
||||
import { DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
|
||||
export function changeChain({
|
||||
activeConnectedAddress,
|
||||
|
||||
@@ -7,8 +7,8 @@ import {
|
||||
} from 'src/app/features/dapp/hooks'
|
||||
import { DappState, dappStore } from 'src/app/features/dapp/store'
|
||||
import { act, renderHook, waitFor } from 'src/test/test-utils'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_3 } from 'uniswap/src/test/fixtures'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_3 } from '@l.x/lx/src/test/fixtures'
|
||||
import { useActiveAccountAddress } from 'wallet/src/features/wallet/hooks'
|
||||
import { ACCOUNT, ACCOUNT2, ACCOUNT3 } from 'wallet/src/test/fixtures'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useEffect, useReducer, useState } from 'react'
|
||||
import { DappInfo, DappStoreEvent, dappStore } from 'src/app/features/dapp/store'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
import { useActiveAccountAddress } from 'wallet/src/features/wallet/hooks'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { dappStore } from 'src/app/features/dapp/store'
|
||||
import { call } from 'typed-redux-saga'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
// Initialize Dapp Store
|
||||
export function* initDappStore() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { cloneDeep } from '@apollo/client/utilities'
|
||||
import EventEmitter from 'eventemitter3'
|
||||
import { getOrderedConnectedAddresses, isConnectedAccount } from 'src/app/features/dapp/utils'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
|
||||
const STATE_STORAGE_KEY = 'dappState'
|
||||
|
||||
@@ -4,17 +4,17 @@ import {
|
||||
getOrderedConnectedAddresses,
|
||||
isConnectedAccount,
|
||||
} from 'src/app/features/dapp/utils'
|
||||
import { SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_2, SAMPLE_SEED_ADDRESS_3 } from 'uniswap/src/test/fixtures'
|
||||
import { extractNameFromUrl } from 'utilities/src/format/extractNameFromUrl'
|
||||
import { promiseTimeout } from 'utilities/src/time/timing'
|
||||
import { SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_2, SAMPLE_SEED_ADDRESS_3 } from '@l.x/lx/src/test/fixtures'
|
||||
import { extractNameFromUrl } from '@l.x/utils/src/format/extractNameFromUrl'
|
||||
import { promiseTimeout } from '@l.x/utils/src/time/timing'
|
||||
import { Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
import { ACCOUNT, ACCOUNT2, ACCOUNT3, readOnlyAccount } from 'wallet/src/test/fixtures'
|
||||
|
||||
jest.mock('utilities/src/format/extractNameFromUrl', () => ({
|
||||
jest.mock('@l.x/utils/src/format/extractNameFromUrl', () => ({
|
||||
extractNameFromUrl: jest.fn(),
|
||||
}))
|
||||
|
||||
jest.mock('utilities/src/time/timing', () => ({
|
||||
jest.mock('@l.x/utils/src/time/timing', () => ({
|
||||
promiseTimeout: jest.fn(),
|
||||
}))
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { AccountType } from 'uniswap/src/features/accounts/types'
|
||||
import { extractNameFromUrl } from 'utilities/src/format/extractNameFromUrl'
|
||||
import { bubbleToTop } from 'utilities/src/primitives/array'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { promiseTimeout } from 'utilities/src/time/timing'
|
||||
import { AccountType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { extractNameFromUrl } from '@l.x/utils/src/format/extractNameFromUrl'
|
||||
import { bubbleToTop } from '@l.x/utils/src/primitives/array'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import { promiseTimeout } from '@l.x/utils/src/time/timing'
|
||||
import { Account, SignerMnemonicAccount } from 'wallet/src/features/wallet/accounts/types'
|
||||
|
||||
const MAX_TAB_QUERY_TIME = ONE_SECOND_MS
|
||||
|
||||
@@ -4,8 +4,8 @@ import type { DappRequestStoreItem } from 'src/app/features/dappRequests/shared'
|
||||
import { DappRequestStatus } from 'src/app/features/dappRequests/shared'
|
||||
import type { WithMetadata } from 'src/app/features/dappRequests/slice'
|
||||
import { render, screen } from 'src/test/test-utils'
|
||||
import { AccountType } from 'uniswap/src/features/accounts/types'
|
||||
import { DappRequestType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { AccountType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { DappRequestType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
|
||||
// Mock wagmi to avoid ESM import issues
|
||||
jest.mock('wagmi', () => ({
|
||||
@@ -30,7 +30,7 @@ jest.mock('src/app/features/dapp/hooks', () => ({
|
||||
useDappLastChainId: jest.fn(() => 1),
|
||||
}))
|
||||
|
||||
jest.mock('uniswap/src/features/gas/hooks/useChainGasToken', () => ({
|
||||
jest.mock('@l.x/lx/src/features/gas/hooks/useChainGasToken', () => ({
|
||||
useChainGasToken: jest.fn(() => ({
|
||||
gasToken: { symbol: 'ETH' },
|
||||
gasBalance: { value: '1000000000000000000', currency: { symbol: 'ETH' }, equalTo: () => false },
|
||||
@@ -38,8 +38,8 @@ jest.mock('uniswap/src/features/gas/hooks/useChainGasToken', () => ({
|
||||
})),
|
||||
}))
|
||||
|
||||
jest.mock('uniswap/src/features/gas/utils', () => ({
|
||||
...jest.requireActual('uniswap/src/features/gas/utils'),
|
||||
jest.mock('@l.x/lx/src/features/gas/utils', () => ({
|
||||
...jest.requireActual('@l.x/lx/src/features/gas/utils'),
|
||||
hasSufficientGasBalance: jest.fn(() => true),
|
||||
hasGasEstimationFailed: jest.fn(() => false),
|
||||
}))
|
||||
@@ -53,7 +53,7 @@ jest.mock('wallet/src/features/wallet/hooks', () => ({
|
||||
})),
|
||||
}))
|
||||
|
||||
jest.mock('uniswap/src/features/chains/hooks/useEnabledChains', () => ({
|
||||
jest.mock('@l.x/lx/src/features/chains/hooks/useEnabledChains', () => ({
|
||||
useEnabledChains: jest.fn(() => ({
|
||||
defaultChainId: 1,
|
||||
})),
|
||||
@@ -73,7 +73,7 @@ jest.mock('wallet/src/features/transactions/TransactionRequest/AddressFooter', (
|
||||
}))
|
||||
|
||||
// Mock currency hooks that parse transaction data
|
||||
jest.mock('uniswap/src/data/apiClients/tradingApi/useTradingApiSwapQuery', () => ({
|
||||
jest.mock('@l.x/lx/src/data/apiClients/tradingApi/useTradingApiSwapQuery', () => ({
|
||||
useTradingApiSwapQuery: jest.fn(() => ({
|
||||
data: undefined,
|
||||
isLoading: false,
|
||||
|
||||
@@ -10,17 +10,17 @@ import { useIsDappRequestConfirming } from 'src/app/features/dappRequests/hooks'
|
||||
import { useIsRequestStale } from 'src/app/features/dappRequests/hooks/useIsRequestStale'
|
||||
import { type DappRequestStoreItem } from 'src/app/features/dappRequests/shared'
|
||||
import { type DappRequest, isBatchedSwapRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { AnimatePresence, Button, Flex, type GetThemeValueForKey, styled, Text } from 'ui/src'
|
||||
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
|
||||
import { type UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { DappRequestType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { useChainGasToken } from 'uniswap/src/features/gas/hooks/useChainGasToken'
|
||||
import { hasGasEstimationFailed, hasSufficientGasBalance } from 'uniswap/src/features/gas/utils'
|
||||
import { type TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { extractNameFromUrl } from 'utilities/src/format/extractNameFromUrl'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { useEvent } from 'utilities/src/react/hooks'
|
||||
import { useThrottledCallback } from 'utilities/src/react/useThrottledCallback'
|
||||
import { AnimatePresence, Button, Flex, type GetThemeValueForKey, styled, Text } from '@l.x/ui/src'
|
||||
import { useEnabledChains } from '@l.x/lx/src/features/chains/hooks/useEnabledChains'
|
||||
import { type UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { DappRequestType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { useChainGasToken } from '@l.x/lx/src/features/gas/hooks/useChainGasToken'
|
||||
import { hasGasEstimationFailed, hasSufficientGasBalance } from '@l.x/lx/src/features/gas/utils'
|
||||
import { type TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { extractNameFromUrl } from '@l.x/utils/src/format/extractNameFromUrl'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { useEvent } from '@l.x/utils/src/react/hooks'
|
||||
import { useThrottledCallback } from '@l.x/utils/src/react/useThrottledCallback'
|
||||
import { MAX_HIDDEN_CALLS_BY_DEFAULT } from 'wallet/src/components/BatchedTransactions/BatchedTransactionDetails'
|
||||
import { DappRequestHeader } from 'wallet/src/components/dappRequests/DappRequestHeader'
|
||||
import { WarningBox } from 'wallet/src/components/WarningBox/WarningBox'
|
||||
|
||||
@@ -24,11 +24,11 @@ import {
|
||||
isSignMessageRequest,
|
||||
isSignTypedDataRequest,
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { AnimatePresence, Flex, Text, TouchableArea, useSporeColors } from 'ui/src'
|
||||
import { ReceiptText, RotatableChevron } from 'ui/src/components/icons'
|
||||
import { zIndexes } from 'ui/src/theme'
|
||||
import { Modal } from 'uniswap/src/components/modals/Modal'
|
||||
import { ModalName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { AnimatePresence, Flex, Text, TouchableArea, useSporeColors } from '@l.x/ui/src'
|
||||
import { ReceiptText, RotatableChevron } from '@l.x/ui/src/components/icons'
|
||||
import { zIndexes } from '@l.x/ui/src/theme'
|
||||
import { Modal } from '@l.x/lx/src/components/modals/Modal'
|
||||
import { ModalName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
|
||||
const REJECT_MESSAGE_HEIGHT = 48
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ import { useTranslation } from 'react-i18next'
|
||||
import { useDispatch } from 'react-redux'
|
||||
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
|
||||
import { useShouldShowBridgingRequestCard } from 'src/app/features/dappRequests/hooks'
|
||||
import { BRIDGING_BANNER } from 'ui/src/assets'
|
||||
import { DappRequestCardLoggingName } from 'uniswap/src/features/telemetry/types'
|
||||
import { CurrencyField } from 'uniswap/src/types/currency'
|
||||
import { BRIDGING_BANNER } from '@l.x/ui/src/assets'
|
||||
import { DappRequestCardLoggingName } from '@l.x/lx/src/features/telemetry/types'
|
||||
import { CurrencyField } from '@l.x/lx/src/types/currency'
|
||||
import { CardType, IntroCard, IntroCardGraphicType, IntroCardProps } from 'wallet/src/components/introCards/IntroCard'
|
||||
import { useWalletNavigation } from 'wallet/src/contexts/WalletNavigationContext'
|
||||
import { setHasViewedDappRequestBridgingBanner } from 'wallet/src/features/behaviorHistory/slice'
|
||||
|
||||
@@ -6,13 +6,13 @@ import { useTransactionConfirmationTracker } from 'src/app/features/dappRequests
|
||||
import { isDappRequestWithDappInfo } from 'src/app/features/dappRequests/saga'
|
||||
import type { DappRequestStoreItem } from 'src/app/features/dappRequests/shared'
|
||||
import { selectAllDappRequests, type WithMetadata } from 'src/app/features/dappRequests/slice'
|
||||
import { DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { DappRequestAction } from 'uniswap/src/features/telemetry/types'
|
||||
import { type TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { extractBaseUrl } from 'utilities/src/format/urls'
|
||||
import { useEvent } from 'utilities/src/react/hooks'
|
||||
import { DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { DappRequestAction } from '@l.x/lx/src/features/telemetry/types'
|
||||
import { type TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { extractBaseUrl } from '@l.x/utils/src/format/urls'
|
||||
import { useEvent } from '@l.x/utils/src/react/hooks'
|
||||
import { type SignedTransactionRequest } from 'wallet/src/features/transactions/executeTransaction/types'
|
||||
import { type Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
import { useActiveAccountWithThrow } from 'wallet/src/features/wallet/hooks'
|
||||
|
||||
@@ -14,16 +14,16 @@ import {
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels'
|
||||
import { call, put, select } from 'typed-redux-saga'
|
||||
import { type UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
|
||||
import { DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { pushNotification } from 'uniswap/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType } from 'uniswap/src/features/notifications/slice/types'
|
||||
import { Platform } from 'uniswap/src/features/platforms/types/Platform'
|
||||
import { getEnabledChainIdsSaga } from 'uniswap/src/features/settings/saga'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { extractBaseUrl } from 'utilities/src/format/urls'
|
||||
import { type UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from '@l.x/lx/src/features/chains/utils'
|
||||
import { DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { pushNotification } from '@l.x/lx/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType } from '@l.x/lx/src/features/notifications/slice/types'
|
||||
import { Platform } from '@l.x/lx/src/features/platforms/types/Platform'
|
||||
import { getEnabledChainIdsSaga } from '@l.x/lx/src/features/settings/saga'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { extractBaseUrl } from '@l.x/utils/src/format/urls'
|
||||
import { getProvider } from 'wallet/src/features/wallet/context'
|
||||
import { selectActiveAccount } from 'wallet/src/features/wallet/selectors'
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { createPrepareAndSignDappTransactionSaga } from 'src/app/features/dappRequests/sagas/prepareAndSignDappTransactionSaga'
|
||||
import { createMonitoredSaga } from 'uniswap/src/utils/saga'
|
||||
import { createMonitoredSaga } from '@l.x/lx/src/utils/saga'
|
||||
import { getSharedTransactionSagaDependencies } from 'wallet/src/features/transactions/configuredSagas'
|
||||
|
||||
// Create configured saga instance using shared transaction dependencies
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import {
|
||||
TransactionConfirmationTrackerProvider,
|
||||
useTransactionConfirmationTracker,
|
||||
} from 'src/app/features/dappRequests/context/TransactionConfirmationTracker'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
|
||||
// Helper component to test the hook
|
||||
function TestComponent({ children }: PropsWithChildren): JSX.Element {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { createContext, PropsWithChildren, useCallback, useContext, useState } from 'react'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
|
||||
interface TransactionConfirmationState {
|
||||
/**
|
||||
|
||||
@@ -63,10 +63,10 @@ import {
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels'
|
||||
import { call, put, select, takeEvery } from 'typed-redux-saga'
|
||||
import { DappRequestType, DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { Platform } from 'uniswap/src/features/platforms/types/Platform'
|
||||
import { getEnabledChainIdsSaga } from 'uniswap/src/features/settings/saga'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { DappRequestType, DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { Platform } from '@l.x/lx/src/features/platforms/types/Platform'
|
||||
import { getEnabledChainIdsSaga } from '@l.x/lx/src/features/settings/saga'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
function* dappRequestApproval({
|
||||
type,
|
||||
|
||||
@@ -3,9 +3,9 @@ import type { SenderTabInfo } from 'src/app/features/dappRequests/shared'
|
||||
import { ChainIdResponse, GetChainIdRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels'
|
||||
import { call } from 'typed-redux-saga'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
|
||||
import { DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { chainIdToHexadecimalString } from '@l.x/lx/src/features/chains/utils'
|
||||
import { DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
|
||||
// oxlint-disable-next-line typescript/explicit-function-return-type
|
||||
export function* getChainId({
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
} from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
jest.mock('utilities/src/logger/logger', () => ({
|
||||
jest.mock('@l.x/utils/src/logger/logger', () => ({
|
||||
logger: {
|
||||
error: jest.fn(),
|
||||
},
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { TradingApi } from '@universe/api'
|
||||
import { createExternallySubmittedUniswapXOrder } from 'src/app/features/dappRequests/handleUniswapX'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import {
|
||||
QueuedOrderStatus,
|
||||
TransactionOriginType,
|
||||
TransactionStatus,
|
||||
TransactionType,
|
||||
} from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
} from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
jest.mock('utilities/src/logger/logger', () => ({
|
||||
jest.mock('@l.x/utils/src/logger/logger', () => ({
|
||||
logger: {
|
||||
error: jest.fn(),
|
||||
},
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
import { TradingApi } from '@universe/api'
|
||||
import { Dispatch } from 'redux'
|
||||
import { TradingApiClient } from 'uniswap/src/data/apiClients/tradingApi/TradingApiClient'
|
||||
import { isUniverseChainId } from 'uniswap/src/features/chains/utils'
|
||||
import { transactionActions } from 'uniswap/src/features/transactions/slice'
|
||||
import { TradingApiClient } from '@l.x/lx/src/data/apiClients/tradingApi/TradingApiClient'
|
||||
import { isUniverseChainId } from '@l.x/lx/src/features/chains/utils'
|
||||
import { transactionActions } from '@l.x/lx/src/features/transactions/slice'
|
||||
import {
|
||||
QueuedOrderStatus,
|
||||
TransactionOriginType,
|
||||
TransactionType,
|
||||
UniswapXOrderDetails,
|
||||
} from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
} from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import {
|
||||
convertOrderStatusToTransactionStatus,
|
||||
convertOrderTypeToRouting,
|
||||
} from 'uniswap/src/features/transactions/utils/uniswapX.utils'
|
||||
import { buildCurrencyId } from 'uniswap/src/utils/currencyId'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { ONE_SECOND_MS } from 'utilities/src/time/time'
|
||||
import { sleep } from 'utilities/src/time/timing'
|
||||
} from '@l.x/lx/src/features/transactions/utils/uniswapX.utils'
|
||||
import { buildCurrencyId } from '@l.x/lx/src/utils/currencyId'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { ONE_SECOND_MS } from '@l.x/utils/src/time/time'
|
||||
import { sleep } from '@l.x/utils/src/time/timing'
|
||||
|
||||
/**
|
||||
* Factory function that creates a handler for externally submitted UniswapX orders.
|
||||
|
||||
@@ -7,8 +7,8 @@ import {
|
||||
isRequestPermissionsRequest,
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { ExtensionState } from 'src/store/extensionReducer'
|
||||
import { getBridgingDappUrls } from 'uniswap/src/features/bridging/constants'
|
||||
import { useBridgingSupportedChainIds, useNumBridgingChains } from 'uniswap/src/features/bridging/hooks/chains'
|
||||
import { getBridgingDappUrls } from '@l.x/lx/src/features/bridging/constants'
|
||||
import { useBridgingSupportedChainIds, useNumBridgingChains } from '@l.x/lx/src/features/bridging/hooks/chains'
|
||||
import { selectHasViewedDappRequestBridgingBanner } from 'wallet/src/features/behaviorHistory/selectors'
|
||||
import { WalletState } from 'wallet/src/state/walletReducer'
|
||||
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
import { renderHook } from '@testing-library/react'
|
||||
import { useTransactionConfirmationTracker } from 'src/app/features/dappRequests/context/TransactionConfirmationTracker'
|
||||
import { useConditionalPreSignDelay } from 'src/app/features/dappRequests/hooks/useConditionalPreSignDelay'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
// Mock the TransactionConfirmationTracker hook
|
||||
jest.mock('src/app/features/dappRequests/context/TransactionConfirmationTracker', () => ({
|
||||
@@ -10,7 +10,7 @@ jest.mock('src/app/features/dappRequests/context/TransactionConfirmationTracker'
|
||||
}))
|
||||
|
||||
// Mock the logger
|
||||
jest.mock('utilities/src/logger/logger', () => ({
|
||||
jest.mock('@l.x/utils/src/logger/logger', () => ({
|
||||
logger: {
|
||||
error: jest.fn(),
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useEffect, useRef } from 'react'
|
||||
import { useTransactionConfirmationTracker } from 'src/app/features/dappRequests/context/TransactionConfirmationTracker'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
/**
|
||||
* Delay before preparing the next transaction to allow network to recognize
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import ms from 'ms'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { useInterval } from 'utilities/src/time/timing'
|
||||
import { useInterval } from '@l.x/utils/src/time/timing'
|
||||
|
||||
export const REQUEST_EXPIRY_TIME_MS = ms('30m')
|
||||
|
||||
|
||||
+6
-6
@@ -3,13 +3,13 @@ import { useDispatch } from 'react-redux'
|
||||
import { prepareAndSignDappTransactionActions } from 'src/app/features/dappRequests/configuredSagas'
|
||||
import { useConditionalPreSignDelay } from 'src/app/features/dappRequests/hooks/useConditionalPreSignDelay'
|
||||
import { usePrepareAndSignDappTransaction } from 'src/app/features/dappRequests/hooks/usePrepareAndSignDappTransaction'
|
||||
import { AccountType } from 'uniswap/src/features/accounts/types'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { AccountType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import {
|
||||
isValidTransactionRequest,
|
||||
ValidatedTransactionRequest,
|
||||
} from 'uniswap/src/features/transactions/types/transactionRequests'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
} from '@l.x/lx/src/features/transactions/types/transactionRequests'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { SignedTransactionRequest } from 'wallet/src/features/transactions/executeTransaction/types'
|
||||
import { Account, SignerMnemonicAccount } from 'wallet/src/features/wallet/accounts/types'
|
||||
|
||||
@@ -29,11 +29,11 @@ jest.mock('src/app/features/dappRequests/configuredSagas', () => ({
|
||||
},
|
||||
}))
|
||||
|
||||
jest.mock('uniswap/src/features/transactions/types/transactionRequests', () => ({
|
||||
jest.mock('@l.x/lx/src/features/transactions/types/transactionRequests', () => ({
|
||||
isValidTransactionRequest: jest.fn(),
|
||||
}))
|
||||
|
||||
jest.mock('utilities/src/logger/logger', () => ({
|
||||
jest.mock('@l.x/utils/src/logger/logger', () => ({
|
||||
logger: {
|
||||
error: jest.fn(),
|
||||
},
|
||||
|
||||
+4
-4
@@ -3,10 +3,10 @@ import { useCallback, useEffect, useRef, useState } from 'react'
|
||||
import { useDispatch } from 'react-redux'
|
||||
import { prepareAndSignDappTransactionActions } from 'src/app/features/dappRequests/configuredSagas'
|
||||
import { useConditionalPreSignDelay } from 'src/app/features/dappRequests/hooks/useConditionalPreSignDelay'
|
||||
import { AccountType } from 'uniswap/src/features/accounts/types'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { isValidTransactionRequest } from 'uniswap/src/features/transactions/types/transactionRequests'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { AccountType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { isValidTransactionRequest } from '@l.x/lx/src/features/transactions/types/transactionRequests'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { SignedTransactionRequest } from 'wallet/src/features/transactions/executeTransaction/types'
|
||||
import { Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import { useMemo } from 'react'
|
||||
import { usePrepareAndSignDappTransaction } from 'src/app/features/dappRequests/hooks/usePrepareAndSignDappTransaction'
|
||||
import { useTransactionGasEstimation } from 'src/app/features/dappRequests/hooks/useTransactionGasEstimation'
|
||||
import { DappRequestStoreItemForEthSendTxn } from 'src/app/features/dappRequests/slice'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { formatExternalTxnWithGasEstimates } from 'wallet/src/features/gas/formatExternalTxnWithGasEstimates'
|
||||
import { SignedTransactionRequest } from 'wallet/src/features/transactions/executeTransaction/types'
|
||||
import { Account } from 'wallet/src/features/wallet/accounts/types'
|
||||
|
||||
+4
-4
@@ -3,10 +3,10 @@ import { useMemo } from 'react'
|
||||
import { usePrepareAndSignDappTransaction } from 'src/app/features/dappRequests/hooks/usePrepareAndSignDappTransaction'
|
||||
import { useTransactionGasEstimation } from 'src/app/features/dappRequests/hooks/useTransactionGasEstimation'
|
||||
import { DappRequestStoreItemForSendCallsTxn } from 'src/app/features/dappRequests/slice'
|
||||
import { UNISWAP_DELEGATION_ADDRESS } from 'uniswap/src/constants/addresses'
|
||||
import { useWalletEncode7702Query } from 'uniswap/src/data/apiClients/tradingApi/useWalletEncode7702Query'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { EthTransaction } from 'uniswap/src/types/walletConnect'
|
||||
import { UNISWAP_DELEGATION_ADDRESS } from '@l.x/lx/src/constants/addresses'
|
||||
import { useWalletEncode7702Query } from '@l.x/lx/src/data/apiClients/tradingApi/useWalletEncode7702Query'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { EthTransaction } from '@l.x/lx/src/types/walletConnect'
|
||||
import { transformCallsToTransactionRequests } from 'wallet/src/features/batchedTransactions/utils'
|
||||
import { useLiveAccountDelegationDetails } from 'wallet/src/features/smartWallet/hooks/useLiveAccountDelegationDetails'
|
||||
import { SignedTransactionRequest } from 'wallet/src/features/transactions/executeTransaction/types'
|
||||
|
||||
+6
-6
@@ -2,17 +2,17 @@ import { TransactionRequest } from '@ethersproject/providers'
|
||||
import { renderHook } from '@testing-library/react'
|
||||
import { GasFeeResult } from '@universe/api'
|
||||
import { useTransactionGasEstimation } from 'src/app/features/dappRequests/hooks/useTransactionGasEstimation'
|
||||
import { PollingInterval } from 'uniswap/src/constants/misc'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { useTransactionGasFee } from 'uniswap/src/features/gas/hooks'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { PollingInterval } from '@l.x/lx/src/constants/misc'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { useTransactionGasFee } from '@l.x/lx/src/features/gas/hooks'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
// Mock dependencies
|
||||
jest.mock('uniswap/src/features/gas/hooks', () => ({
|
||||
jest.mock('@l.x/lx/src/features/gas/hooks', () => ({
|
||||
useTransactionGasFee: jest.fn(),
|
||||
}))
|
||||
|
||||
jest.mock('utilities/src/logger/logger', () => ({
|
||||
jest.mock('@l.x/utils/src/logger/logger', () => ({
|
||||
logger: {
|
||||
error: jest.fn(),
|
||||
},
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { TransactionRequest } from '@ethersproject/providers'
|
||||
import { GasFeeResult } from '@universe/api'
|
||||
import { useEffect, useMemo } from 'react'
|
||||
import { PollingInterval } from 'uniswap/src/constants/misc'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { useTransactionGasFee } from 'uniswap/src/features/gas/hooks'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { PollingInterval } from '@l.x/lx/src/constants/misc'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { useTransactionGasFee } from '@l.x/lx/src/features/gas/hooks'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
interface UseTransactionGasEstimationParams {
|
||||
/** Base transaction data (will be formatted with chainId) */
|
||||
|
||||
@@ -16,14 +16,14 @@ import {
|
||||
import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels'
|
||||
import { type Permission } from 'src/contentScript/WindowEthereumRequestTypes'
|
||||
import { call, put } from 'typed-redux-saga'
|
||||
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
|
||||
import { DappResponseType, EthMethod } from 'uniswap/src/features/dappRequests/types'
|
||||
import { pushNotification } from 'uniswap/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType } from 'uniswap/src/features/notifications/slice/types'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { extractBaseUrl } from 'utilities/src/format/urls'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { chainIdToHexadecimalString } from '@l.x/lx/src/features/chains/utils'
|
||||
import { DappResponseType, EthMethod } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { pushNotification } from '@l.x/lx/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType } from '@l.x/lx/src/features/notifications/slice/types'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import { extractBaseUrl } from '@l.x/utils/src/format/urls'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
|
||||
export function getPermissions(dappUrl: string | undefined, connectedAddresses: Address[] | undefined): Permission[] {
|
||||
const permissions: Permission[] = []
|
||||
|
||||
+6
-6
@@ -1,11 +1,11 @@
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { Flex, Text } from 'ui/src'
|
||||
import { AlertTriangleFilled } from 'ui/src/components/icons'
|
||||
import { LearnMoreLink } from 'uniswap/src/components/text/LearnMoreLink'
|
||||
import { uniswapUrls } from 'uniswap/src/constants/urls'
|
||||
import { WalletEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import Trace from 'uniswap/src/features/telemetry/Trace'
|
||||
import { Flex, Text } from '@l.x/ui/src'
|
||||
import { AlertTriangleFilled } from '@l.x/ui/src/components/icons'
|
||||
import { LearnMoreLink } from '@l.x/lx/src/components/text/LearnMoreLink'
|
||||
import { uniswapUrls } from '@l.x/lx/src/constants/urls'
|
||||
import { WalletEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import Trace from '@l.x/lx/src/features/telemetry/Trace'
|
||||
|
||||
export function ActionCanNotBeCompletedContent(): JSX.Element {
|
||||
const { t } = useTranslation()
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
|
||||
import { AccountType } from 'uniswap/src/features/accounts/types'
|
||||
import { AccountType } from '@l.x/lx/src/features/accounts/types'
|
||||
import { DappConnectionContent } from 'wallet/src/components/dappRequests/DappConnectionContent'
|
||||
import { useBlockaidVerification } from 'wallet/src/features/dappRequests/hooks/useBlockaidVerification'
|
||||
import { useDappConnectionConfirmation } from 'wallet/src/features/dappRequests/hooks/useDappConnectionConfirmation'
|
||||
|
||||
+10
-10
@@ -8,16 +8,16 @@ import {
|
||||
ApproveSendTransactionRequest,
|
||||
DappRequest as DappRequestBaseType,
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { Flex, Text } from 'ui/src'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { CurrencyLogo } from 'uniswap/src/components/CurrencyLogo/CurrencyLogo'
|
||||
import { LearnMoreLink } from 'uniswap/src/components/text/LearnMoreLink'
|
||||
import { uniswapUrls } from 'uniswap/src/constants/urls'
|
||||
import { DappRequestType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
|
||||
import { useCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo'
|
||||
import { TransactionType, TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { buildCurrencyId } from 'uniswap/src/utils/currencyId'
|
||||
import { Flex, Text } from '@l.x/ui/src'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
import { CurrencyLogo } from '@l.x/lx/src/components/CurrencyLogo/CurrencyLogo'
|
||||
import { LearnMoreLink } from '@l.x/lx/src/components/text/LearnMoreLink'
|
||||
import { uniswapUrls } from '@l.x/lx/src/constants/urls'
|
||||
import { DappRequestType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { CurrencyInfo } from '@l.x/lx/src/features/dataApi/types'
|
||||
import { useCurrencyInfo } from '@l.x/lx/src/features/tokens/useCurrencyInfo'
|
||||
import { TransactionType, TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { buildCurrencyId } from '@l.x/lx/src/utils/currencyId'
|
||||
import { useNoYoloParser } from 'wallet/src/utils/useNoYoloParser'
|
||||
|
||||
function useDappRequestTokenRecipientInfo(request: DappRequestBaseType, dappUrl: string): Maybe<CurrencyInfo> {
|
||||
|
||||
@@ -19,8 +19,8 @@ import {
|
||||
isWrapRequest,
|
||||
SendTransactionRequest,
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
|
||||
|
||||
interface EthSendRequestContentProps {
|
||||
|
||||
+6
-6
@@ -6,12 +6,12 @@ import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestCon
|
||||
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
|
||||
import { isNonZeroBigNumber } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils'
|
||||
import { SendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { Anchor, Flex, Text, TouchableArea } from 'ui/src'
|
||||
import { AnimatedCopySheets, ExternalLink } from 'ui/src/components/icons'
|
||||
import { ContentRow } from 'uniswap/src/components/transactions/requests/ContentRow'
|
||||
import { CopyNotificationType } from 'uniswap/src/features/notifications/slice/types'
|
||||
import { ExplorerDataType, getExplorerLink } from 'uniswap/src/utils/linking'
|
||||
import { ellipseMiddle, shortenAddress } from 'utilities/src/addresses'
|
||||
import { Anchor, Flex, Text, TouchableArea } from '@l.x/ui/src'
|
||||
import { AnimatedCopySheets, ExternalLink } from '@l.x/ui/src/components/icons'
|
||||
import { ContentRow } from '@l.x/lx/src/components/transactions/requests/ContentRow'
|
||||
import { CopyNotificationType } from '@l.x/lx/src/features/notifications/slice/types'
|
||||
import { ExplorerDataType, getExplorerLink } from '@l.x/lx/src/utils/linking'
|
||||
import { ellipseMiddle, shortenAddress } from '@l.x/utils/src/addresses'
|
||||
import { useCopyToClipboard } from 'wallet/src/components/copy/useCopyToClipboard'
|
||||
import {
|
||||
SpendingDetails,
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import { GasFeeResult } from '@universe/api'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { LPSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { Flex, Text } from 'ui/src'
|
||||
import { Flex, Text } from '@l.x/ui/src'
|
||||
|
||||
interface LPRequestContentProps {
|
||||
transactionGasFeeResult: GasFeeResult
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import { useDappLastChainId } from 'src/app/features/dapp/hooks'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
|
||||
import { SendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
import { DappTransactionScanningContent } from 'wallet/src/components/dappRequests/DappTransactionScanningContent'
|
||||
import { TransactionRiskLevel } from 'wallet/src/features/dappRequests/types'
|
||||
import { shouldDisableConfirm } from 'wallet/src/features/dappRequests/utils/riskUtils'
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@ import { GasFeeResult } from '@universe/api'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { Permit2ApproveSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { Flex, Text } from 'ui/src'
|
||||
import { TransactionType, TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { Flex, Text } from '@l.x/ui/src'
|
||||
import { TransactionType, TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
|
||||
interface Permit2ApproveRequestContentProps {
|
||||
transactionGasFeeResult: GasFeeResult
|
||||
|
||||
+11
-11
@@ -1,17 +1,17 @@
|
||||
import { GasFeeResult } from '@universe/api'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { Flex, Separator, Text } from 'ui/src'
|
||||
import { ArrowDown } from 'ui/src/components/icons'
|
||||
import { iconSizes } from 'ui/src/theme'
|
||||
import { CurrencyLogo } from 'uniswap/src/components/CurrencyLogo/CurrencyLogo'
|
||||
import { SplitLogo } from 'uniswap/src/components/CurrencyLogo/SplitLogo'
|
||||
import { UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
|
||||
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
|
||||
import { getCurrencyAmount, ValueType } from 'uniswap/src/features/tokens/getCurrencyAmount'
|
||||
import { useUSDCValue } from 'uniswap/src/features/transactions/hooks/useUSDCPriceWrapper'
|
||||
import { NumberType } from 'utilities/src/format/types'
|
||||
import { Flex, Separator, Text } from '@l.x/ui/src'
|
||||
import { ArrowDown } from '@l.x/ui/src/components/icons'
|
||||
import { iconSizes } from '@l.x/ui/src/theme'
|
||||
import { CurrencyLogo } from '@l.x/lx/src/components/CurrencyLogo/CurrencyLogo'
|
||||
import { SplitLogo } from '@l.x/lx/src/components/CurrencyLogo/SplitLogo'
|
||||
import { UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { CurrencyInfo } from '@l.x/lx/src/features/dataApi/types'
|
||||
import { useLocalizationContext } from '@l.x/lx/src/features/language/LocalizationContext'
|
||||
import { getCurrencyAmount, ValueType } from '@l.x/lx/src/features/tokens/getCurrencyAmount'
|
||||
import { useUSDCValue } from '@l.x/lx/src/features/transactions/hooks/useUSDCPriceWrapper'
|
||||
import { NumberType } from '@l.x/utils/src/format/types'
|
||||
|
||||
// oxlint-disable-next-line complexity -- biome-parity: oxlint is stricter here
|
||||
export function SwapDisplay({
|
||||
|
||||
+8
-8
@@ -4,14 +4,14 @@ import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRe
|
||||
import { SwapDisplay } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay'
|
||||
import { formatUnits, useSwapDetails } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils'
|
||||
import { UniversalRouterCall } from 'src/app/features/dappRequests/types/UniversalRouterTypes'
|
||||
import { DEFAULT_NATIVE_ADDRESS, DEFAULT_NATIVE_ADDRESS_LEGACY } from 'uniswap/src/features/chains/evm/defaults'
|
||||
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
|
||||
import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
|
||||
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
|
||||
import { useCurrencyInfo, useNativeCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo'
|
||||
import { TransactionType, TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { buildCurrencyId } from 'uniswap/src/utils/currencyId'
|
||||
import { assert } from 'utilities/src/errors'
|
||||
import { DEFAULT_NATIVE_ADDRESS, DEFAULT_NATIVE_ADDRESS_LEGACY } from '@l.x/lx/src/features/chains/evm/defaults'
|
||||
import { useEnabledChains } from '@l.x/lx/src/features/chains/hooks/useEnabledChains'
|
||||
import { toSupportedChainId } from '@l.x/lx/src/features/chains/utils'
|
||||
import { CurrencyInfo } from '@l.x/lx/src/features/dataApi/types'
|
||||
import { useCurrencyInfo, useNativeCurrencyInfo } from '@l.x/lx/src/features/tokens/useCurrencyInfo'
|
||||
import { TransactionType, TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { buildCurrencyId } from '@l.x/lx/src/utils/currencyId'
|
||||
import { assert } from '@l.x/utils/src/errors'
|
||||
import { UniswapXSwapRequest } from 'wallet/src/components/dappRequests/types/Permit2Types'
|
||||
|
||||
function getTransactionTypeInfo({
|
||||
|
||||
@@ -30,8 +30,8 @@ import {
|
||||
V4SwapExactOutParamSchema,
|
||||
V4SwapExactOutSingleParamSchema,
|
||||
} from 'src/app/features/dappRequests/types/UniversalRouterTypes'
|
||||
import { DEFAULT_NATIVE_ADDRESS, DEFAULT_NATIVE_ADDRESS_LEGACY } from 'uniswap/src/features/chains/evm/defaults'
|
||||
import { buildCurrencyId } from 'uniswap/src/utils/currencyId'
|
||||
import { DEFAULT_NATIVE_ADDRESS, DEFAULT_NATIVE_ADDRESS_LEGACY } from '@l.x/lx/src/features/chains/evm/defaults'
|
||||
import { buildCurrencyId } from '@l.x/lx/src/utils/currencyId'
|
||||
|
||||
// Like ethers.formatUnits except it parses specific constants
|
||||
export function formatUnits(amount: BigNumberish, units: number): string {
|
||||
|
||||
+4
-4
@@ -4,10 +4,10 @@ import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRe
|
||||
import { SwapDisplay } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay'
|
||||
import { formatUnits } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils'
|
||||
import { WrapSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
|
||||
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
|
||||
import { useNativeCurrencyInfo, useWrappedNativeCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo'
|
||||
import { TransactionType, TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { useEnabledChains } from '@l.x/lx/src/features/chains/hooks/useEnabledChains'
|
||||
import { CurrencyInfo } from '@l.x/lx/src/features/dataApi/types'
|
||||
import { useNativeCurrencyInfo, useWrappedNativeCurrencyInfo } from '@l.x/lx/src/features/tokens/useCurrencyInfo'
|
||||
import { TransactionType, TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
|
||||
function getTransactionTypeInfo({
|
||||
inputCurrencyInfo,
|
||||
|
||||
+4
-4
@@ -5,10 +5,10 @@ import { useDappLastChainId } from 'src/app/features/dapp/hooks'
|
||||
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
|
||||
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
|
||||
import { SignMessageRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { EthMethod } from 'uniswap/src/features/dappRequests/types'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { containsNonPrintableChars } from 'utilities/src/primitives/string'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { EthMethod } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { containsNonPrintableChars } from '@l.x/utils/src/primitives/string'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
import { DappPersonalSignContent } from 'wallet/src/components/dappRequests/DappPersonalSignContent'
|
||||
import { TransactionRiskLevel } from 'wallet/src/features/dappRequests/types'
|
||||
import { shouldDisableConfirm } from 'wallet/src/features/dappRequests/utils/riskUtils'
|
||||
|
||||
+3
-3
@@ -13,9 +13,9 @@ import {
|
||||
type ParsedCall,
|
||||
type SendCallsRequest,
|
||||
} from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { type UniverseChainId } from 'uniswap/src/features/chains/types'
|
||||
import { TransactionType, type TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { type UniverseChainId } from '@l.x/lx/src/features/chains/types'
|
||||
import { TransactionType, type TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
import { BatchedRequestDetailsContent } from 'wallet/src/components/BatchedTransactions/BatchedTransactionDetails'
|
||||
import { DappSendCallsScanningContent } from 'wallet/src/components/dappRequests/DappSendCallsScanningContent'
|
||||
import { type TransactionRiskLevel } from 'wallet/src/features/dappRequests/types'
|
||||
|
||||
+5
-5
@@ -7,11 +7,11 @@ import { ActionCanNotBeCompletedContent } from 'src/app/features/dappRequests/re
|
||||
import { UniswapXSwapRequestContent } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/SwapRequestContent'
|
||||
import { NonStandardTypedDataRequestContent } from 'src/app/features/dappRequests/requestContent/SignTypeData/NonStandardTypedDataRequestContent'
|
||||
import { SignTypedDataRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import { Flex } from 'ui/src'
|
||||
import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
|
||||
import { useHasAccountMismatchCallback } from 'uniswap/src/features/smartWallet/mismatch/hooks'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
import { useBooleanState } from 'utilities/src/react/useBooleanState'
|
||||
import { Flex } from '@l.x/ui/src'
|
||||
import { toSupportedChainId } from '@l.x/lx/src/features/chains/utils'
|
||||
import { useHasAccountMismatchCallback } from '@l.x/lx/src/features/smartWallet/mismatch/hooks'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { useBooleanState } from '@l.x/utils/src/react/useBooleanState'
|
||||
import { DappSignTypedDataContent } from 'wallet/src/components/dappRequests/DappSignTypedDataContent'
|
||||
import { Permit2Content } from 'wallet/src/components/dappRequests/SignTypedData/Permit2Content'
|
||||
import { StandardTypedDataContent } from 'wallet/src/components/dappRequests/SignTypedData/StandardTypedDataContent'
|
||||
|
||||
@@ -44,21 +44,21 @@ import { navigate } from 'src/app/navigation/state'
|
||||
import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels'
|
||||
import getCalldataInfoFromTransaction from 'src/background/utils/getCalldataInfoFromTransaction'
|
||||
import { call, put, select, take } from 'typed-redux-saga'
|
||||
import { hexadecimalStringToInt, toSupportedChainId } from 'uniswap/src/features/chains/utils'
|
||||
import { DappRequestType, DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { pushNotification } from 'uniswap/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType } from 'uniswap/src/features/notifications/slice/types'
|
||||
import { Platform } from 'uniswap/src/features/platforms/types/Platform'
|
||||
import { getEnabledChainIdsSaga } from 'uniswap/src/features/settings/saga'
|
||||
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
|
||||
import { hexadecimalStringToInt, toSupportedChainId } from '@l.x/lx/src/features/chains/utils'
|
||||
import { DappRequestType, DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import { pushNotification } from '@l.x/lx/src/features/notifications/slice/slice'
|
||||
import { AppNotificationType } from '@l.x/lx/src/features/notifications/slice/types'
|
||||
import { Platform } from '@l.x/lx/src/features/platforms/types/Platform'
|
||||
import { getEnabledChainIdsSaga } from '@l.x/lx/src/features/settings/saga'
|
||||
import { ExtensionEventName } from '@l.x/lx/src/features/telemetry/constants'
|
||||
import { sendAnalyticsEvent } from '@l.x/lx/src/features/telemetry/send'
|
||||
import {
|
||||
TransactionOriginType,
|
||||
TransactionType,
|
||||
type TransactionTypeInfo,
|
||||
} from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import { extractBaseUrl } from 'utilities/src/format/urls'
|
||||
import { logger } from 'utilities/src/logger/logger'
|
||||
} from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import { extractBaseUrl } from '@l.x/utils/src/format/urls'
|
||||
import { logger } from '@l.x/utils/src/logger/logger'
|
||||
import { getCallsStatusHelper } from 'wallet/src/features/batchedTransactions/eip5792Utils'
|
||||
import { addBatchedTransaction } from 'wallet/src/features/batchedTransactions/slice'
|
||||
import { generateBatchId, getCapabilitiesResponse } from 'wallet/src/features/batchedTransactions/utils'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DappInfo } from 'src/app/features/dapp/store'
|
||||
import type { DappRequest, ErrorResponse } from 'src/app/features/dappRequests/types/DappRequestTypes'
|
||||
import type { DappRequestMessageSchema } from 'src/background/messagePassing/types/requests'
|
||||
import type { TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
|
||||
import type { TransactionTypeInfo } from '@l.x/lx/src/features/transactions/types/transactionDetails'
|
||||
import type { SignedTransactionRequest } from 'wallet/src/features/transactions/executeTransaction/types'
|
||||
import type { z } from 'zod'
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import { NonfungiblePositionManagerCallSchema } from 'src/app/features/dappReque
|
||||
import { UniversalRouterCallSchema } from 'src/app/features/dappRequests/types/UniversalRouterTypes'
|
||||
import { HomeTabs } from 'src/app/navigation/constants'
|
||||
import { PermissionRequestSchema, PermissionSchema } from 'src/contentScript/WindowEthereumRequestTypes'
|
||||
import { MessageSchema } from 'uniswap/src/extension/messagePassing/messageTypes'
|
||||
import { DappRequestType, DappResponseType } from 'uniswap/src/features/dappRequests/types'
|
||||
import { MessageSchema } from '@l.x/lx/src/extension/messagePassing/messageTypes'
|
||||
import { DappRequestType, DappResponseType } from '@l.x/lx/src/features/dappRequests/types'
|
||||
import {
|
||||
BatchIdSchema,
|
||||
CallSchema,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user