ci(release): publish latest release

parent 009ca13d
* @uniswap/web-admins
IPFS hash of the deployment:
- CIDv0: `QmfX5PhEdtW5GsS87h9TYNv2391xFgcvskiRhLevHBv4UB`
- CIDv1: `bafybeih7ijsp2ffbfy5ujtegykklef5m5qeabsgzpk22ttclhojwhcy7hq`
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
You can also access the Uniswap Interface from an IPFS gateway.
**BEWARE**: The Uniswap interface uses [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported.
**You should always use an IPFS gateway that enforces origin separation**, or our hosted deployment of the latest release at [app.uniswap.org](https://app.uniswap.org).
Your Uniswap settings are never remembered across different URLs.
IPFS gateways:
- https://bafybeih7ijsp2ffbfy5ujtegykklef5m5qeabsgzpk22ttclhojwhcy7hq.ipfs.dweb.link/
- https://bafybeih7ijsp2ffbfy5ujtegykklef5m5qeabsgzpk22ttclhojwhcy7hq.ipfs.cf-ipfs.com/
- [ipfs://QmfX5PhEdtW5GsS87h9TYNv2391xFgcvskiRhLevHBv4UB/](ipfs://QmfX5PhEdtW5GsS87h9TYNv2391xFgcvskiRhLevHBv4UB/)
### 5.61.3 (2024-12-09)
### Bug Fixes
* **web:** fix broken link for providing lps (#14372) (#14413) 295fd19
We are back with some small updates! Here’s the latest:
Expanded Fiat Onramp Providers: We’ve continued to add more options for onramp providers to make it easier to change your fiat into crypto, without leaving the app.
Other Changes:
- Disconnect from all apps in one click, in the Manage Connections page.
- More detailed error messages for WalletConnect-related issues.
- Various bug fixes and performance improvements
web/5.61.3
\ No newline at end of file
mobile/1.40.1
\ No newline at end of file
......@@ -4,7 +4,6 @@
"browserslist": "last 2 chrome versions",
"dependencies": {
"@apollo/client": "3.10.4",
"@datadog/browser-logs": "5.20.0",
"@datadog/browser-rum": "5.23.3",
"@ethersproject/providers": "5.7.2",
"@metamask/rpc-errors": "6.2.1",
......@@ -13,7 +12,7 @@
"@sentry/react": "7.80.0",
"@sentry/webpack-plugin": "2.10.3",
"@svgr/webpack": "8.0.1",
"@tamagui/core": "1.114.4",
"@tamagui/core": "1.108.4",
"@types/uuid": "9.0.1",
"@uniswap/analytics-events": "2.39.0",
"@uniswap/uniswapx-sdk": "2.1.0-beta.18",
......@@ -32,7 +31,7 @@
"react-native-gesture-handler": "2.19.0",
"react-native-reanimated": "3.15.0",
"react-native-svg": "15.1.0",
"react-native-web": "0.19.13",
"react-native-web": "0.19.10",
"react-qr-code": "2.0.12",
"react-redux": "8.0.5",
"react-router-dom": "6.10.0",
......@@ -78,7 +77,7 @@
"serve": "14.2.4",
"statsig-js": "4.41.0",
"swc-loader": "0.2.6",
"tamagui-loader": "1.114.4",
"tamagui-loader": "1.108.4",
"typescript": "5.3.3",
"webpack": "5.90.0",
"webpack-cli": "5.1.4",
......
import { useEffect } from 'react'
import { useColorScheme } from 'react-native'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
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 { datadogLogs } from '@datadog/browser-logs'
import { datadogRum } from '@datadog/browser-rum'
import { getDatadogEnvironment } from 'src/app/version'
import { config } from 'uniswap/src/config'
......@@ -16,16 +15,12 @@ export async function initializeDatadog(appName: string): Promise<void> {
return
}
const sharedDatadogConfig = {
datadogRum.init({
applicationId: config.datadogProjectId,
clientToken: config.datadogClientToken,
service: `extension-${getDatadogEnvironment()}`,
env: getDatadogEnvironment(),
version: process.env.VERSION,
}
datadogRum.init({
...sharedDatadogConfig,
applicationId: config.datadogProjectId,
sessionSampleRate: 100,
sessionReplaySampleRate: 0,
trackResources: true,
......@@ -49,12 +44,6 @@ export async function initializeDatadog(appName: string): Promise<void> {
},
})
datadogLogs.init({
...sharedDatadogConfig,
site: 'datadoghq.com',
forwardErrorsToLogs: false,
})
try {
const userId = await getUniqueId()
datadogRum.setUser({
......
......@@ -6,7 +6,7 @@ import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice'
import { DappRequestType } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { Anchor, AnimatePresence, Button, Flex, Text, UniversalImage, UniversalImageResizeMode, styled } from 'ui/src'
import { borderRadii, iconSizes } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { GasFeeResult } from 'uniswap/src/features/gas/types'
import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils'
......
......@@ -5,7 +5,7 @@ import { ETH_ADDRESS } from 'src/app/features/dappRequests/requestContent/EthSen
import { formatUnits, useSwapDetails } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils'
import { SignTypedDataRequest, SwapSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { DEFAULT_NATIVE_ADDRESS } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
import { GasFeeResult } from 'uniswap/src/features/gas/types'
......
......@@ -4,7 +4,7 @@ import { useDappLastChainId } from 'src/app/features/dapp/hooks'
import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice'
import { SendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { Flex, Text } from 'ui/src'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useGasFeeFormattedAmounts, useTransactionGasFee } from 'uniswap/src/features/gas/hooks'
import { useActiveAccountAddressWithThrow, useDisplayName } from 'wallet/src/features/wallet/hooks'
......
......@@ -6,7 +6,7 @@ import { AppRoutes } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state'
import { Flex, Text, getTokenValue, useMedia } from 'ui/src'
import { ArrowDownCircle, Buy, CoinConvert, SendAction } from 'ui/src/components/icons'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { ElementName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { TestnetModeModal } from 'uniswap/src/features/testnets/TestnetModeModal'
......
......@@ -9,7 +9,7 @@ import { Check, Power } from 'ui/src/components/icons'
import { usePreventOverflowBelowFold } from 'ui/src/hooks/usePreventOverflowBelowFold'
import { iconSizes } from 'ui/src/theme'
import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { getChainLabel } from 'uniswap/src/features/chains/utils'
import { pushNotification } from 'uniswap/src/features/notifications/slice'
......
......@@ -10,7 +10,7 @@ import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard'
import { InfoLinkModal } from 'uniswap/src/components/modals/InfoLinkModal'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { PortfolioBalance } from 'uniswap/src/features/dataApi/types'
import { ElementName, ModalName, SectionName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
......@@ -13,10 +13,10 @@ exports[`KeyboardKey Component renders correctly with state Highlighted 1`] = `
class=" t_light _dsp_contents is_Theme"
>
<div
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-surface1 _borderTopColor-accent2Hove112785 _borderRightColor-accent2Hove112785 _borderBottomColor-accent2Hove112785 _borderLeftColor-accent2Hove112785 _borderTopLeftRadius-t-radius-ro291586424 _borderTopRightRadius-t-radius-ro291586424 _borderBottomRightRadius-t-radius-ro291586424 _borderBottomLeftRadius-t-radius-ro291586424 _borderTopWidth-t-space-spa94665587 _borderRightWidth-t-space-spa94665587 _borderBottomWidth-t-space-spa94665587 _borderLeftWidth-t-space-spa94665587 _height-70px _justifyContent-center _pr-t-space-spa1360334043 _pl-t-space-spa1360334043 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-0px7px0pxva651413887"
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-568007324 _borderTopColor-170210283 _borderRightColor-170210283 _borderBottomColor-170210283 _borderLeftColor-170210283 _borderTopLeftRadius-1307610060 _borderTopRightRadius-1307610060 _borderBottomRightRadius-1307610060 _borderBottomLeftRadius-1307610060 _borderTopWidth-1481558338 _borderRightWidth-1481558338 _borderBottomWidth-1481558338 _borderLeftWidth-1481558338 _height-70px _justifyContent-center _pr-1316330176 _pl-1316330176 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-1750371555"
>
<span
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-accent1 _fontFamily-f-family _wordWrap-break-word _fontSize-28px _lineHeight-f-lineHeigh507465454 _fontWeight-f-weight-bo3548"
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-1380577629 _fontFamily-299667014 _wordWrap-break-word _fontSize-28px _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true"
>
Shift
......@@ -41,10 +41,10 @@ exports[`KeyboardKey Component renders correctly with state KeyDown 1`] = `
class=" t_light _dsp_contents is_Theme"
>
<div
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-surface1 _borderTopColor-accent2Hove112785 _borderRightColor-accent2Hove112785 _borderBottomColor-accent2Hove112785 _borderLeftColor-accent2Hove112785 _borderTopLeftRadius-t-radius-ro291586424 _borderTopRightRadius-t-radius-ro291586424 _borderBottomRightRadius-t-radius-ro291586424 _borderBottomLeftRadius-t-radius-ro291586424 _borderTopWidth-t-space-spa94665587 _borderRightWidth-t-space-spa94665587 _borderBottomWidth-t-space-spa94665587 _borderLeftWidth-t-space-spa94665587 _height-70px _justifyContent-center _pr-t-space-spa1360334043 _pl-t-space-spa1360334043 _top-7px _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-0px0pxvar--100262595"
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-568007324 _borderTopColor-170210283 _borderRightColor-170210283 _borderBottomColor-170210283 _borderLeftColor-170210283 _borderTopLeftRadius-1307610060 _borderTopRightRadius-1307610060 _borderBottomRightRadius-1307610060 _borderBottomLeftRadius-1307610060 _borderTopWidth-1481558338 _borderRightWidth-1481558338 _borderBottomWidth-1481558338 _borderLeftWidth-1481558338 _height-70px _justifyContent-center _pr-1316330176 _pl-1316330176 _top-7px _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-1083284829"
>
<span
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-accent1 _fontFamily-f-family _wordWrap-break-word _fontSize-28px _lineHeight-f-lineHeigh507465454 _fontWeight-f-weight-bo3548"
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-1380577629 _fontFamily-299667014 _wordWrap-break-word _fontSize-28px _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true"
>
Shift
......@@ -69,10 +69,10 @@ exports[`KeyboardKey Component renders correctly with state KeyUp 1`] = `
class=" t_light _dsp_contents is_Theme"
>
<div
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-surface1 _borderTopColor-surface3 _borderRightColor-surface3 _borderBottomColor-surface3 _borderLeftColor-surface3 _borderTopLeftRadius-t-radius-ro291586424 _borderTopRightRadius-t-radius-ro291586424 _borderBottomRightRadius-t-radius-ro291586424 _borderBottomLeftRadius-t-radius-ro291586424 _borderTopWidth-t-space-spa94665587 _borderRightWidth-t-space-spa94665587 _borderBottomWidth-t-space-spa94665587 _borderLeftWidth-t-space-spa94665587 _height-70px _justifyContent-center _pr-t-space-spa1360334043 _pl-t-space-spa1360334043 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-0px7px0pxva612953881"
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-568007324 _borderTopColor-568007262 _borderRightColor-568007262 _borderBottomColor-568007262 _borderLeftColor-568007262 _borderTopLeftRadius-1307610060 _borderTopRightRadius-1307610060 _borderBottomRightRadius-1307610060 _borderBottomLeftRadius-1307610060 _borderTopWidth-1481558338 _borderRightWidth-1481558338 _borderBottomWidth-1481558338 _borderLeftWidth-1481558338 _height-70px _justifyContent-center _pr-1316330176 _pl-1316330176 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-1880567627"
>
<span
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-neutral2 _fontFamily-f-family _wordWrap-break-word _fontSize-28px _lineHeight-f-lineHeigh507465454 _fontWeight-f-weight-bo3548"
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843135005 _fontFamily-299667014 _wordWrap-break-word _fontSize-28px _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true"
>
Shift
......
......@@ -37,7 +37,7 @@ import {
import { iconSizes } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { resetUniswapBehaviorHistory } from 'uniswap/src/features/behaviorHistory/slice'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { FiatCurrency, ORDERED_CURRENCIES } from 'uniswap/src/features/fiatCurrency/constants'
import { getFiatCurrencyName, useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
......
import { useState } from 'react'
import { useExtensionNavigation } from 'src/app/navigation/utils'
import { Flex } from 'ui/src'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useHighestBalanceNativeCurrencyId } from 'uniswap/src/features/dataApi/balances'
import { useSwapPrefilledState } from 'uniswap/src/features/transactions/swap/hooks/useSwapPrefilledState'
import { prepareSwapFormState } from 'uniswap/src/features/transactions/types/transactionState'
......
......@@ -5,7 +5,7 @@ import { useCopyToClipboard } from 'src/app/hooks/useOnCopyToClipboard'
import { AppRoutes, HomeQueryParams, HomeTabs } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state'
import { SidebarLocationState, focusOrCreateTokensExploreTab } from 'src/app/navigation/utils'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { CopyNotificationType } from 'uniswap/src/features/notifications/types'
import { WalletEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
......@@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "Uniswap Extension",
"description": "The Uniswap Extension is a self-custody crypto wallet that's built for swapping.",
"version": "1.11.0",
"version": "1.10.0",
"minimum_chrome_version": "116",
"icons": {
"16": "assets/icon16.png",
......
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Web App",
"extends": "../../config/tsconfig/nextjs.json",
"extends": "tsconfig/nextjs.json",
"include": [
"**/*.ts",
"**/*.tsx",
......
......@@ -89,9 +89,9 @@ if (isCI && datadogPropertiesAvailable && !isDetox) {
apply from: "../../../../node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle"
}
def devVersionName = "1.41"
def betaVersionName = "1.41"
def prodVersionName = "1.41"
def devVersionName = "1.40.1"
def betaVersionName = "1.40.1"
def prodVersionName = "1.40.1"
android {
ndkVersion rootProject.ext.ndkVersion
......
......@@ -2205,7 +2205,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
......@@ -2258,7 +2258,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
......@@ -2311,7 +2311,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
......@@ -2364,7 +2364,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
......@@ -2402,7 +2402,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
......@@ -2438,7 +2438,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
......@@ -2473,7 +2473,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
......@@ -2508,7 +2508,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
......@@ -2555,7 +2555,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
......@@ -2601,7 +2601,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.widgets;
......@@ -2647,7 +2647,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.widgets;
......@@ -2693,7 +2693,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.widgets;
......@@ -2735,7 +2735,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
......@@ -2778,7 +2778,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.WidgetIntentExtension;
......@@ -2821,7 +2821,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.WidgetIntentExtension;
......@@ -2864,7 +2864,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.WidgetIntentExtension;
......@@ -2900,7 +2900,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
......@@ -2938,7 +2938,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
......@@ -3138,7 +3138,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
......@@ -3182,7 +3182,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.OneSignalNotificationServiceExtension;
......@@ -3293,7 +3293,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
......@@ -3364,7 +3364,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.OneSignalNotificationServiceExtension;
......@@ -3475,7 +3475,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
......@@ -3546,7 +3546,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.41;
MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.OneSignalNotificationServiceExtension;
......
const preset = require('../../config/jest-presets/jest/jest-preset')
/** @type {import('jest').Config} */
module.exports = {
...preset,
testTimeout: 15000,
preset: 'jest-expo',
displayName: 'Mobile Wallet',
collectCoverageFrom: [
......@@ -21,4 +21,10 @@ module.exports = {
'./jest-setup.js',
'../../node_modules/react-native-gesture-handler/jestSetup.js',
],
// we map core/web to tamagui's test bundle, this just makes setup simpler for jest
moduleNameMapper: {
...preset.moduleNameMapper,
'@tamagui/core': '@tamagui/core/native-test',
'@tamagui/web': '@tamagui/core/native-test',
},
}
......@@ -163,7 +163,7 @@
"@datadog/datadog-ci": "2.39.0",
"@faker-js/faker": "7.6.0",
"@storybook/react": "7.0.2",
"@tamagui/babel-plugin": "1.114.4",
"@tamagui/babel-plugin": "1.108.4",
"@testing-library/react-native": "11.5.0",
"@types/redux-mock-store": "1.0.6",
"@uniswap/eslint-config": "workspace:^",
......
......@@ -5,7 +5,7 @@ import { exploreNavigationRef } from 'src/app/navigation/navigation'
import { useAppStackNavigation } from 'src/app/navigation/types'
import { closeModal, openModal } from 'src/features/modals/modalSlice'
import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
......
......@@ -3,7 +3,7 @@ import { useDispatch, useSelector } from 'react-redux'
import { closeModal } from 'src/features/modals/modalSlice'
import { selectModalState } from 'src/features/modals/selectModalState'
import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { TokenList } from 'uniswap/src/features/dataApi/types'
import { ModalName } from 'uniswap/src/features/telemetry/constants'
import TokenWarningModal from 'uniswap/src/features/tokens/TokenWarningModal'
......
......@@ -34,42 +34,17 @@ exports[`AccountSwitcher renders correctly 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "transparent",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 0,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 0,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 0,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 0,
......@@ -180,12 +155,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 19,
......@@ -202,7 +172,18 @@ exports[`AccountSwitcher renders correctly 1`] = `
</View>
</View>
<View
hitSlop={16}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -220,12 +201,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "transparent",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999,
......@@ -246,12 +222,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -333,45 +304,31 @@ exports[`AccountSwitcher renders correctly 1`] = `
}
>
<View
cancelable={true}
disabled={false}
focusable={true}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12,
"borderBottomWidth": 1,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 1,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 1,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 12,
"borderTopRightRadius": 12,
"borderTopWidth": 1,
......@@ -392,12 +349,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
maxFontSizeMultiplier={1.2}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#000000",
},
},
"color": "#000000",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "500",
......@@ -468,14 +420,18 @@ exports[`AccountSwitcher renders correctly 1`] = `
</View>
</View>
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -503,42 +459,17 @@ exports[`AccountSwitcher renders correctly 1`] = `
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "#FFFFFF",
"borderBottomColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 1,
"borderLeftColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderLeftColor": "rgba(34,34,34,0.05)",
"borderLeftWidth": 1,
"borderRightColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderRightColor": "rgba(34,34,34,0.05)",
"borderRightWidth": 1,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderTopColor": "rgba(34,34,34,0.05)",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 1,
......@@ -623,12 +554,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
maxFontSizeMultiplier={1.2}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "500",
......
......@@ -20,7 +20,7 @@ import { Flex, FlexProps, LinearGradient, Text, TouchableArea, useIsDarkMode, us
import { Search } from 'ui/src/components/icons'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { borderRadii, fonts, opacify } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useHighestBalanceNativeCurrencyId } from 'uniswap/src/features/dataApi/balances'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
......@@ -5,7 +5,7 @@ import { navigate as rootNavigate } from 'src/app/navigation/rootNavigation'
import { useAppStackNavigation, useExploreStackNavigation } from 'src/app/navigation/types'
import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex'
import { useTransactionListLazyQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { MobileScreens } from 'uniswap/src/types/screens/mobile'
/**
......
......@@ -17,7 +17,7 @@ import { Flex, SegmentedControl, Text } from 'ui/src'
import GraphCurve from 'ui/src/assets/backgrounds/graph-curve.svg'
import { spacing } from 'ui/src/theme'
import { HistoryDuration } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
import Trace from 'uniswap/src/features/telemetry/Trace'
......
......@@ -25,12 +25,7 @@ exports[`DatetimeText renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -257,12 +252,7 @@ exports[`RelativeChangeText renders loading state 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"color": "transparent",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -278,12 +268,7 @@ exports[`RelativeChangeText renders loading state 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#1B1B1B",
"light": "#F9F9F9",
},
},
"backgroundColor": "#F9F9F9",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999,
......
......@@ -6,7 +6,7 @@ import { LinkButton } from 'src/components/buttons/LinkButton'
import { SignRequest, WalletConnectRequest, isTransactionRequest } from 'src/features/walletConnect/walletConnectSlice'
import { Flex, Text, useSporeColors } from 'ui/src'
import { TextVariantTokens, iconSizes } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { useENS } from 'uniswap/src/features/ens/useENS'
......
import { useMemo } from 'react'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { GasFeeResult } from 'uniswap/src/features/gas/types'
import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils'
......
......@@ -5,7 +5,7 @@ import Check from 'ui/src/assets/icons/check.svg'
import { iconSizes } from 'ui/src/theme'
import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo'
import { ActionSheetModal } from 'uniswap/src/components/modals/ActionSheetModal'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { getChainLabel } from 'uniswap/src/features/chains/utils'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
......
......@@ -7,7 +7,7 @@ import { iconSizes } from 'ui/src/theme'
import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo'
import { InlineNetworkPill } from 'uniswap/src/components/network/NetworkPill'
import { AccountType } from 'uniswap/src/features/accounts/types'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { PortfolioBalance } from 'uniswap/src/features/dataApi/types'
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
import Trace from 'uniswap/src/features/telemetry/Trace'
......
......@@ -2,7 +2,7 @@ import { NativeStackNavigationProp } from '@react-navigation/native-stack'
import { createContext, PropsWithChildren, useCallback, useContext, useMemo, useState } from 'react'
import { AppStackParamList } from 'src/app/navigation/types'
import { useTokenDetailsColors } from 'src/components/TokenDetails/useTokenDetailsColors'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
import { useCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo'
......
......@@ -5,7 +5,7 @@ import { useBiometricAppSettings, useDeviceSupportsBiometricAuth } from 'src/fea
import { getAuthMethod } from 'src/features/telemetry/utils'
import { getFullAppVersion } from 'src/utils/version'
import { useIsDarkMode } from 'ui/src'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrency } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
......
......@@ -22,14 +22,19 @@ exports[`AccountCardItem renders correctly 1`] = `
onPress={[Function]}
>
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -86,42 +91,17 @@ exports[`AccountCardItem renders correctly 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "transparent",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 0,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 0,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 0,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 0,
......@@ -233,12 +213,7 @@ exports[`AccountCardItem renders correctly 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 19,
......@@ -262,12 +237,7 @@ exports[`AccountCardItem renders correctly 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......
......@@ -35,7 +35,19 @@ exports[`AccountHeader renders correctly 1`] = `
}
>
<View
hitSlop={20}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
......@@ -53,42 +65,17 @@ exports[`AccountHeader renders correctly 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "#FFFFFF",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 0,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 0,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 0,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 0,
......@@ -270,7 +257,18 @@ exports[`AccountHeader renders correctly 1`] = `
testID="account-header/display-name"
>
<View
hitSlop={20}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -298,12 +296,7 @@ exports[`AccountHeader renders correctly 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -381,7 +374,18 @@ exports[`AccountHeader renders correctly 1`] = `
</Text>
</View>
<View
hitSlop={20}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -411,12 +415,7 @@ exports[`AccountHeader renders correctly 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......
......@@ -91,12 +91,7 @@ exports[`AccountList renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -135,14 +130,19 @@ exports[`AccountList renders without error 1`] = `
onPress={[Function]}
>
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -199,42 +199,17 @@ exports[`AccountList renders without error 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "transparent",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 0,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 0,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 0,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 0,
......@@ -346,12 +321,7 @@ exports[`AccountList renders without error 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 19,
......@@ -375,12 +345,7 @@ exports[`AccountList renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......
......@@ -2,7 +2,18 @@
exports[`BackButton renders without error 1`] = `
<View
hitSlop={24}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
......@@ -110,12 +121,7 @@ exports[`BackButton renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......
......@@ -2,14 +2,18 @@
exports[`CloseButton renders without error 1`] = `
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......
......@@ -2,45 +2,31 @@
exports[`CopyTextButton renders without error 1`] = `
<View
cancelable={true}
disabled={false}
focusable={true}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16,
"borderBottomWidth": 1,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 1,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 1,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 16,
"borderTopRightRadius": 16,
"borderTopWidth": 1,
......@@ -57,14 +43,7 @@ exports[`CopyTextButton renders without error 1`] = `
}
>
<svg
color={
{
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
}
}
color="#222222"
data-file-name="SvgCopySheets"
height={20}
size={20}
......@@ -74,12 +53,7 @@ exports[`CopyTextButton renders without error 1`] = `
maxFontSizeMultiplier={1.2}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "500",
......
......@@ -2,14 +2,18 @@
exports[`LinkButton renders without error 1`] = `
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -36,12 +40,7 @@ exports[`LinkButton renders without error 1`] = `
allowFontScaling={true}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
}
......@@ -51,14 +50,7 @@ exports[`LinkButton renders without error 1`] = `
link text
</Text>
<svg
color={
{
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
}
}
color="#FC72FF"
data-file-name="SvgExternalLink"
height={20}
strokeWidth={1.5}
......
......@@ -20,7 +20,7 @@ import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo'
import { NetworkPill } from 'uniswap/src/components/network/NetworkPill'
import { ALL_NETWORKS_ARG } from 'uniswap/src/data/rest/base'
import { useTokenRankingsQuery } from 'uniswap/src/data/rest/tokenRankings'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { fromGraphQLChain } from 'uniswap/src/features/chains/utils'
import { selectHasFavoriteTokens, selectHasWatchedWallets } from 'uniswap/src/features/favorites/selectors'
......
......@@ -15,7 +15,7 @@ import { borderRadii, imageSizes, opacify } from 'ui/src/theme'
import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo'
import { PollingInterval } from 'uniswap/src/constants/misc'
import { useFavoriteTokenCardQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { fromGraphQLChain } from 'uniswap/src/features/chains/utils'
import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils'
import { removeFavoriteToken } from 'uniswap/src/features/favorites/slice'
......
......@@ -17,10 +17,10 @@ describe('SortButton', () => {
jest.useRealTimers()
})
it('renders without error', async () => {
it('renders without error', () => {
const tree = render(<SortButton orderBy={RankingType.Volume} />)
await act(async () => {
act(async () => {
jest.runAllTimers()
})
......@@ -44,9 +44,9 @@ describe('SortButton', () => {
]
describe.each(cases)('when ordering by $test', ({ orderBy, label }) => {
it(`renders ${label} as the selected option`, async () => {
it(`renders ${label} as the selected option`, () => {
const { queryByText } = render(<SortButton orderBy={orderBy} />)
await act(async () => {
act(async () => {
jest.runAllTimers()
})
const selectedOption = queryByText(label)
......
......@@ -19,12 +19,7 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -36,7 +31,18 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = `
Editing Title
</Text>
<View
hitSlop={16}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -54,12 +60,7 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = `
maxFontSizeMultiplier={1.2}
style={
{
"color": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"color": "#FC72FF",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "500",
......@@ -94,12 +95,7 @@ exports[`FavoriteHeaderRow when not editing renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -111,7 +107,18 @@ exports[`FavoriteHeaderRow when not editing renders without error 1`] = `
Title
</Text>
<View
hitSlop={16}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......
......@@ -22,12 +22,7 @@ exports[`FavoriteTokenCard renders without error 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16,
"borderTopLeftRadius": 16,
......
......@@ -39,23 +39,22 @@ exports[`FavoriteWalletCard renders without error 1`] = `
}
>
<View
cancelable={true}
disabled={false}
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"backgroundColor": "#FFFFFF",
"borderBottomColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16,
......@@ -117,42 +116,17 @@ exports[`FavoriteWalletCard renders without error 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "transparent",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 0,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 0,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 0,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 0,
......@@ -242,12 +216,7 @@ exports[`FavoriteWalletCard renders without error 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 19,
......@@ -283,12 +252,7 @@ exports[`FavoriteWalletCard renders without error 1`] = `
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"backgroundColor": "#BFBFBF",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999,
......@@ -311,12 +275,7 @@ exports[`FavoriteWalletCard renders without error 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"backgroundColor": "#FFFFFF",
"borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12,
"borderTopLeftRadius": 12,
......
......@@ -2,16 +2,11 @@
exports[`RemoveButton renders without error 1`] = `
<View
cancelable={true}
collapsable={false}
disabled={false}
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
focusable={true}
hitSlop={[Function]}
jestAnimatedStyle={
{
"value": {
......@@ -19,15 +14,18 @@ exports[`RemoveButton renders without error 1`] = `
},
}
}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"backgroundColor": "#BFBFBF",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999,
......@@ -50,12 +48,7 @@ exports[`RemoveButton renders without error 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"backgroundColor": "#FFFFFF",
"borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12,
"borderTopLeftRadius": 12,
......
......@@ -3,14 +3,18 @@
exports[`SortButton renders without error 1`] = `
[
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -41,12 +45,7 @@ exports[`SortButton renders without error 1`] = `
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 20,
"borderBottomRightRadius": 20,
"borderTopLeftRadius": 20,
......@@ -68,12 +67,7 @@ exports[`SortButton renders without error 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 15,
......
......@@ -6,14 +6,19 @@ exports[`TokenItem renders without error 1`] = `
onPress={[MockFunction]}
>
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -71,12 +76,7 @@ exports[`TokenItem renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 15,
"fontWeight": "400",
......@@ -157,12 +157,7 @@ exports[`TokenItem renders without error 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -179,12 +174,7 @@ exports[`TokenItem renders without error 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -227,12 +217,7 @@ exports[`TokenItem renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -267,12 +252,7 @@ exports[`TokenItem renders without error 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......
......@@ -29,7 +29,7 @@ import { AnimatedBottomSheetFlashList } from 'ui/src/components/AnimatedFlashLis
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard'
import { useExploreSearchQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { SearchContext } from 'uniswap/src/features/search/SearchContext'
import {
......
import { useMemo } from 'react'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { ENS_SUFFIX } from 'uniswap/src/features/ens/constants'
import { useENS } from 'uniswap/src/features/ens/useENS'
......
......@@ -4,7 +4,7 @@ import { getBlockExplorerIcon } from 'src/components/icons/BlockExplorerIcon'
import { Flex, Text, TouchableArea, useSporeColors } from 'ui/src'
import { Arrow } from 'ui/src/components/arrow/Arrow'
import { iconSizes } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { EtherscanSearchResult } from 'uniswap/src/features/search/SearchResult'
import { addToSearchHistory } from 'uniswap/src/features/search/searchHistorySlice'
import { TestID } from 'uniswap/src/test/fixtures/testIDs'
......
......@@ -29,7 +29,6 @@ export function FiatOnRampCtaButton({
icon={
isLoading ? <SpinningLoader color="$white" /> : !eligible ? <InfoCircleFilled color="$neutral3" /> : undefined
}
height={isShortMobileDevice ? 38 : 55}
size={isShortMobileDevice ? 'small' : 'large'}
theme={buttonAvailable ? 'primary' : 'tertiary'}
onPress={onPress}
......
......@@ -5,36 +5,16 @@ exports[`renders selection circle 1`] = `
style={
{
"alignItems": "center",
"borderBottomColor": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderBottomColor": "#FC72FF",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderBottomWidth": 1,
"borderLeftColor": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderLeftColor": "#FC72FF",
"borderLeftWidth": 1,
"borderRightColor": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderRightColor": "#FC72FF",
"borderRightWidth": 1,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderTopColor": "#FC72FF",
"borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999,
"borderTopWidth": 1,
......@@ -48,12 +28,7 @@ exports[`renders selection circle 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"backgroundColor": "#FC72FF",
"borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999,
......
......@@ -6,12 +6,7 @@ exports[`renders a DecimalNumber 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -26,12 +21,7 @@ exports[`renders a DecimalNumber 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -52,12 +42,7 @@ exports[`renders a DecimalNumber without a comma separator 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -72,12 +57,7 @@ exports[`renders a DecimalNumber without a comma separator 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -98,12 +78,7 @@ exports[`renders a DecimalNumber without a decimal part 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......
......@@ -14,12 +14,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -35,12 +30,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -56,12 +46,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -77,12 +62,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -98,12 +78,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -119,12 +94,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -140,12 +110,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -161,12 +126,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -182,12 +142,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -203,12 +158,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -224,12 +174,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -245,12 +190,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -266,12 +206,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -287,12 +222,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -308,12 +238,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -329,12 +254,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -350,12 +270,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -371,12 +286,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -392,12 +302,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -413,12 +318,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -434,12 +334,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -455,12 +350,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"color": "#BFBFBF",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -481,12 +371,7 @@ exports[`renders text without matches 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......
import { Alert } from 'react-native'
import { Alert, Platform } from 'react-native'
import { MobileState } from 'src/app/mobileReducer'
import { APP_FEEDBACK_LINK } from 'src/constants/urls'
import { hasConsecutiveRecentSwapsSelector } from 'src/features/appRating/selectors'
......@@ -11,6 +11,12 @@ import i18n from 'uniswap/src/i18n/i18n'
import { openUri } from 'uniswap/src/utils/linking'
import { isJestRun } from 'utilities/src/environment/constants'
import { logger } from 'utilities/src/logger/logger'
import { isAndroid } from 'utilities/src/platform'
function isAndroid14(): boolean {
return isAndroid && Platform.Version === 34
}
import { ONE_DAY_MS, ONE_SECOND_MS } from 'utilities/src/time/time'
import { selectActiveAccountAddress } from 'wallet/src/features/wallet/selectors'
import { setAppRating } from 'wallet/src/features/wallet/slice'
......@@ -23,7 +29,7 @@ const MIN_FEEDBACK_REMINDER_MS = 180 * ONE_DAY_MS
const SWAP_FINALIZED_PROMPT_DELAY_MS = 3 * ONE_SECOND_MS
try {
if (!isJestRun) {
if (!isJestRun && !isAndroid14()) {
import('expo-store-review')
}
} catch (error) {
......
......@@ -10,7 +10,7 @@ import { Flex, TouchableArea } from 'ui/src'
import { iconSizes } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { getChainInfo } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { pushNotification } from 'uniswap/src/features/notifications/slice'
import { AppNotificationType, CopyNotificationType } from 'uniswap/src/features/notifications/types'
import { ElementName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
......
......@@ -4,10 +4,8 @@ import { useTranslation } from 'react-i18next'
import { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native'
import { TouchableOpacity } from 'react-native-gesture-handler'
import { useAnimatedStyle, useSharedValue } from 'react-native-reanimated'
import { useFiatOnRampContext } from 'src/features/fiatOnRamp/FiatOnRampContext'
import { ColorTokens, Flex, Text, TouchableArea, useIsShortMobileDevice, useSporeColors } from 'ui/src'
import { errorShakeAnimation } from 'ui/src/animations/errorShakeAnimation'
import { ArrowUpDown } from 'ui/src/components/icons/ArrowUpDown'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions'
import { useDynamicFontSizing } from 'ui/src/hooks/useDynamicFontSizing'
......@@ -30,7 +28,7 @@ const MAX_CHAR_PIXEL_WIDTH = 40
const PREDEFINED_AMOUNTS = [100, 300, 1000]
type OnChangeAmount = (amount: string, newIsTokenInputMode?: boolean) => void
type OnChangeAmount = (amount: string) => void
function OnRampError({ errorText, color }: { errorText?: string; color: ColorTokens }): JSX.Element {
return (
......@@ -47,9 +45,7 @@ interface FiatOnRampAmountSectionProps {
currency: FiatOnRampCurrency
onEnterAmount: OnChangeAmount
onChoosePredifendAmount: OnChangeAmount
onToggleIsTokenInputMode: () => void
quoteAmount: number
sourceAmount: number
quoteCurrencyAmountReady: boolean
selectTokenLoading: boolean
onTokenSelectorPress: () => void
......@@ -74,13 +70,11 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
errorText,
onEnterAmount,
onChoosePredifendAmount,
onToggleIsTokenInputMode,
predefinedAmountsSupported,
appFiatCurrencySupported,
notAvailableInThisRegion,
fiatCurrencyInfo,
quoteAmount,
sourceAmount,
currency,
selectTokenLoading,
},
......@@ -96,8 +90,6 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
const prevErrorText = usePrevious(errorText)
const { fullHeight } = useDeviceDimensions()
const { isTokenInputMode, isOffRamp } = useFiatOnRampContext()
const inputRef = useRef<TextInput>(null)
useImperativeHandle(forwardedRef, () => ({
......@@ -155,17 +147,14 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
}, [inputRef, isTextInputRefActuallyFocused]),
)
const derivedFiatAmount = isOffRamp ? quoteAmount : sourceAmount
const derivedTokenAmount = useFormatExactCurrencyAmount(
isOffRamp ? sourceAmount.toString() : quoteAmount.toString(),
// TODO: handle this fiat mode switcher
function onToggleIsFiatMode(): void {}
const formattedCurrencyAmount = useFormatExactCurrencyAmount(
quoteAmount.toString(),
currency.currencyInfo?.currency,
)
const derivedAmount = isTokenInputMode ? derivedFiatAmount.toString() : derivedTokenAmount
const formattedDerivedAmount = isTokenInputMode
? `${fiatCurrencyInfo.symbol}${derivedAmount}`
: `${derivedAmount}${currency.currencyInfo?.currency.symbol}`
// Workaround to avoid incorrect input width calculations by react-native
// Decimal numbers were manually calculated for Basel Grotesk fonts and will
// require an adjustment when the font is changed
......@@ -182,17 +171,13 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
return acc + fontSize * 0.595
case '4':
case '0':
default:
return acc + fontSize * 0.62
case '5':
case '7':
return acc + fontSize * 0.602
case '9':
return acc + fontSize * 0.607
case '.':
case ',':
return acc + fontSize * 0.25
default:
return acc + fontSize * 0.62
}
},
// ensures a proper width for a "0" placeholder or adds 3 points for the input caret
......@@ -217,7 +202,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
) : null}
</Flex>
<AnimatedFlex style={inputAnimatedStyle} width="100%">
<Flex alignItems="center" justifyContent="center" flexDirection={isTokenInputMode ? 'row-reverse' : 'row'}>
<Flex row alignItems="center" justifyContent="center">
<Text
allowFontScaling
color={!value ? '$neutral3' : '$neutral1'}
......@@ -225,7 +210,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
height={fontSize}
lineHeight={fontSize}
>
{isTokenInputMode ? currency.currencyInfo?.currency.symbol : fiatCurrencyInfo.symbol}
{fiatCurrencyInfo.symbol}
</Text>
<AmountInput
ref={inputRef}
......@@ -271,7 +256,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
))}
</Flex>
) : (
<TouchableArea onPress={onToggleIsTokenInputMode}>
<TouchableArea onPress={onToggleIsFiatMode}>
<Flex
centered
row
......@@ -281,15 +266,12 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
pb="$spacing4"
pt="$spacing4"
>
<Text
color="$neutral2"
maxHeight={fonts.subheading1.lineHeight}
loading={selectTokenLoading}
variant="subheading1"
>
{formattedDerivedAmount}
<Text color="$neutral2" loading={selectTokenLoading} variant="subheading1">
{formattedCurrencyAmount}
{currency.currencyInfo?.currency.symbol}
</Text>
<ArrowUpDown color="$neutral2" maxWidth={16} size="$icon.16" />
{/* TODO: support switching from fiat to token amounts */}
{/* <ArrowUpDown color="$neutral2" maxWidth={16} size="$icon.16" /> */}
</Flex>
</TouchableArea>
)}
......
......@@ -27,14 +27,10 @@ interface FiatOnRampContextType {
quoteCurrency: FiatOnRampCurrency
defaultCurrency: FiatOnRampCurrency
setQuoteCurrency: (quoteCurrency: FiatOnRampCurrency) => void
fiatAmount: number | undefined
tokenAmount: number | undefined
setFiatAmount: (fiatAmount: number | undefined) => void
setTokenAmount: (tokenAmount: number | undefined) => void
amount?: number
setAmount: (amount: number | undefined) => void
isOffRamp: boolean
setIsOffRamp: (isOffRamp: boolean) => void
isTokenInputMode: boolean
setIsTokenInputMode: React.Dispatch<React.SetStateAction<boolean>>
}
const initialState: FiatOnRampContextType = {
......@@ -44,18 +40,13 @@ const initialState: FiatOnRampContextType = {
setCountryState: () => undefined,
setBaseCurrencyInfo: () => undefined,
setQuoteCurrency: () => undefined,
setFiatAmount: () => undefined,
setTokenAmount: () => undefined,
fiatAmount: undefined,
tokenAmount: undefined,
setAmount: () => undefined,
countryCode: '',
countryState: undefined,
quoteCurrency: { currencyInfo: undefined },
defaultCurrency: { currencyInfo: undefined },
isOffRamp: false,
setIsOffRamp: () => undefined,
isTokenInputMode: false,
setIsTokenInputMode: () => undefined,
}
const FiatOnRampContext = createContext<FiatOnRampContextType>(initialState)
......@@ -70,10 +61,8 @@ export function FiatOnRampProvider({ children }: { children: React.ReactNode }):
const [countryCode, setCountryCode] = useState<string>(getCountry())
const [countryState, setCountryState] = useState<string | undefined>()
const [baseCurrencyInfo, setBaseCurrencyInfo] = useState<FiatCurrencyInfo>()
const [amount, setAmount] = useState<number>()
const [isOffRamp, setIsOffRamp] = useState<boolean>(false)
const [isTokenInputMode, setIsTokenInputMode] = useState<boolean>(false)
const [fiatAmount, setFiatAmount] = useState<number | undefined>()
const [tokenAmount, setTokenAmount] = useState<number | undefined>()
const { initialState: initialModalState } = useSelector(selectModalState(ModalName.FiatOnRampAggregator))
const prefilledCurrency = initialModalState?.prefilledCurrency
......@@ -104,14 +93,10 @@ export function FiatOnRampProvider({ children }: { children: React.ReactNode }):
quoteCurrency,
defaultCurrency,
setQuoteCurrency,
fiatAmount,
setFiatAmount,
tokenAmount,
setTokenAmount,
amount,
setAmount,
isOffRamp,
setIsOffRamp,
isTokenInputMode,
setIsTokenInputMode,
}}
>
{children}
......
......@@ -14,42 +14,17 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "#FFFFFF",
"borderBottomColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 20,
"borderBottomRightRadius": 20,
"borderBottomWidth": 1,
"borderLeftColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderLeftColor": "rgba(34,34,34,0.05)",
"borderLeftWidth": 1,
"borderRightColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderRightColor": "rgba(34,34,34,0.05)",
"borderRightWidth": 1,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderTopColor": "rgba(34,34,34,0.05)",
"borderTopLeftRadius": 20,
"borderTopRightRadius": 20,
"borderTopWidth": 1,
......@@ -83,67 +58,32 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
focusable={true}
maxFontSizeMultiplier={1.4}
multiline={true}
onBlur={[Function]}
onChangeText={[Function]}
onFocus={[Function]}
onSubmitEditing={[Function]}
placeholderTextColor={
{
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
}
}
placeholderTextColor="#BFBFBF"
returnKeyType="done"
scrollEnabled={false}
selectionColor="#BFBFBF"
spellCheck={false}
style={
{
"backgroundColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"backgroundColor": "transparent",
"borderBottomColor": "transparent",
"borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12,
"borderBottomWidth": 1,
"borderLeftColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftColor": "transparent",
"borderLeftWidth": 1,
"borderRightColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightColor": "transparent",
"borderRightWidth": 1,
"borderStyle": "solid",
"borderTopColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopColor": "transparent",
"borderTopLeftRadius": 12,
"borderTopRightRadius": 12,
"borderTopWidth": 1,
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 17,
......@@ -181,12 +121,7 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
pointerEvents="none"
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -221,22 +156,21 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
}
>
<View
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#361A37",
"light": "#FEF4FF",
},
},
"backgroundColor": "#FEF4FF",
"borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12,
"borderTopLeftRadius": 12,
......@@ -270,12 +204,7 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
maxFontSizeMultiplier={1.2}
style={
{
"color": {
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"color": "#FC72FF",
"fontFamily": "Basel Grotesk",
"fontSize": 15,
"fontWeight": "500",
......
......@@ -2,15 +2,18 @@
exports[`renders collection preview card 1`] = `
<View
cancelable={true}
disabled={false}
hitSlop={
{
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"flexDirection": "column",
......@@ -27,12 +30,7 @@ exports[`renders collection preview card 1`] = `
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16,
"borderTopLeftRadius": 16,
......@@ -77,12 +75,7 @@ exports[`renders collection preview card 1`] = `
{
"alignItems": "center",
"aspectRatio": 1,
"backgroundColor": {
"dynamic": {
"dark": "#1B1B1B",
"light": "#F9F9F9",
},
},
"backgroundColor": "#F9F9F9",
"flex": 1,
"flexDirection": "column",
"justifyContent": "center",
......@@ -99,12 +92,7 @@ exports[`renders collection preview card 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......@@ -150,12 +138,7 @@ exports[`renders collection preview card 1`] = `
numberOfLines={1}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -168,14 +151,7 @@ exports[`renders collection preview card 1`] = `
</Text>
</View>
<svg
color={
{
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
}
}
color="#FC72FF"
data-file-name="SvgVerified"
height={16}
width={16}
......
......@@ -4,12 +4,7 @@ exports[`renders trait card 1`] = `
<View
style={
{
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16,
"borderTopLeftRadius": 16,
......@@ -28,12 +23,7 @@ exports[`renders trait card 1`] = `
maxFontSizeMultiplier={1.2}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "500",
......@@ -49,12 +39,7 @@ exports[`renders trait card 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......
......@@ -16,7 +16,7 @@ import {
} from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { AssetType, CurrencyAsset } from 'uniswap/src/entities/assets'
import { DEFAULT_NATIVE_ADDRESS } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { getChainLabel, toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { usePortfolioBalances, useTokenBalancesGroupedByVisibility } from 'uniswap/src/features/dataApi/balances'
......
......@@ -159,25 +159,11 @@ export const parseTransactionRequest = (
}
}
function isUtf8(str: string): boolean {
try {
const decoded = new TextDecoder('utf-8').decode(new TextEncoder().encode(str))
// if the encoded -> decoded string matches the original string (ie no chars swapped),
// then it's valid utf-8
return decoded === str
} catch {
return false
}
}
export function decodeMessage(value: string): string {
if (utils.isHexString(value) && isUtf8(value)) {
const decoded = utils.toUtf8String(value)
if (decoded?.trim()) {
return decoded
}
if (utils.isHexString(value)) {
return utils.toUtf8String(value)
}
return value
}
......
......@@ -15,7 +15,7 @@ import { Flex, flexStyles } from 'ui/src'
import { useBottomSheetContext } from 'uniswap/src/components/modals/BottomSheetContext'
import { HandleBar } from 'uniswap/src/components/modals/HandleBar'
import { NetworkFilter } from 'uniswap/src/components/network/NetworkFilter'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { CancelBehaviorType, SearchTextInput } from 'uniswap/src/features/search/SearchTextInput'
import { MobileEventName, ModalName, SectionName } from 'uniswap/src/features/telemetry/constants'
......
......@@ -49,8 +49,7 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
countryState,
baseCurrencyInfo,
quoteCurrency,
fiatAmount,
tokenAmount,
amount,
} = useFiatOnRampContext()
const serviceProvider = selectedQuote?.serviceProviderDetails
......@@ -76,12 +75,12 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
isLoading: widgetLoading,
error: widgetError,
} = useFiatOnRampAggregatorWidgetQuery(
!isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && fiatAmount
!isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && amount
? {
serviceProvider: serviceProvider.serviceProvider,
countryCode,
destinationCurrencyCode: quoteCurrency.meldCurrencyCode,
sourceAmount: fiatAmount,
sourceAmount: amount,
sourceCurrencyCode: baseCurrencyInfo.code,
walletAddress: activeAccountAddress,
externalSessionId: externalTransactionId,
......@@ -96,12 +95,12 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
isLoading: offRampWidgetLoading,
error: offRampWidgetError,
} = useFiatOnRampAggregatorOffRampWidgetQuery(
isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && tokenAmount
isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && amount
? {
serviceProvider: serviceProvider.serviceProvider,
countryCode,
baseCurrencyCode: quoteCurrency.meldCurrencyCode,
sourceAmount: tokenAmount,
sourceAmount: amount,
quoteCurrencyCode: baseCurrencyInfo.code,
refundWalletAddress: activeAccountAddress,
externalCustomerId: activeAccountAddress,
......@@ -178,7 +177,7 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
<>
<FiatOnRampConnectingView
amount={addFiatSymbolToNumber({
value: fiatAmount,
value: amount,
currencyCode: baseCurrencyInfo?.code,
currencySymbol: baseCurrencyInfo?.symbol,
})}
......
......@@ -58,9 +58,8 @@ import SendIcon from 'ui/src/assets/icons/send-action.svg'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions'
import { iconSizes, spacing } from 'ui/src/theme'
import { useNftsTabQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { AccountType } from 'uniswap/src/features/accounts/types'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { usePortfolioBalances } from 'uniswap/src/features/dataApi/balances'
import { useCexTransferProviders } from 'uniswap/src/features/fiatOnRamp/useCexTransferProviders'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
......@@ -82,7 +81,6 @@ import { TestID } from 'uniswap/src/test/fixtures/testIDs'
import { MobileScreens } from 'uniswap/src/types/screens/mobile'
import { useTimeout } from 'utilities/src/time/timing'
import { ScannerModalState } from 'wallet/src/components/QRCodeScanner/constants'
import { useFormattedTransactionDataForActivity } from 'wallet/src/features/activity/hooks'
import { PortfolioBalance } from 'wallet/src/features/portfolio/PortfolioBalance'
import { TokenBalanceListRow } from 'wallet/src/features/portfolio/TokenBalanceListContext'
import { useHeartbeatReporter, useLastBalancesReporter } from 'wallet/src/features/telemetry/hooks'
......@@ -117,28 +115,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const { data: balancesById, loading: areBalancesLoading } = usePortfolioBalances({
address: activeAccount.address,
})
const { gqlChains } = useEnabledChains()
const { data: nftData } = useNftsTabQuery({
variables: {
ownerAddress: activeAccount.address,
first: 1,
filter: { filterSpam: true },
chains: gqlChains,
},
notifyOnNetworkStatusChange: true, // Used to trigger network state / loading on refetch or fetchMore
errorPolicy: 'all', // Suppress non-null image.url fields from backend
})
const isNftBalance = !!nftData?.nftBalances?.edges.length
const { hasData: isActivity } = useFormattedTransactionDataForActivity({
address: activeAccount.address,
hideSpamTokens: true,
pageSize: 1,
})
const isTokenBalances = !!Object.entries(balancesById || {}).length
const showEmptyWalletState = !isTokenBalances && !isNftBalance && !isActivity
const showEmptyTokenState = balancesById && !Object.entries(balancesById).length
// opens the wallet restore modal if recovery phrase is missing after the app is opened
useWalletRestore({ openModalImmediately: true })
......@@ -149,7 +126,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const [routeTabIndex, setRouteTabIndex] = useState(props?.route?.params?.tab ?? HomeScreenTabIndex.Tokens)
// Ensures that tabIndex has the proper value between the empty state and non-empty state
const tabIndex = showEmptyWalletState ? HomeScreenTabIndex.Tokens : routeTabIndex
const tabIndex = showEmptyTokenState ? HomeScreenTabIndex.Tokens : routeTabIndex
useHomeScreenCustomAndroidBackButton(routeTabIndex, setRouteTabIndex)
......@@ -161,7 +138,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const exploreTitle = t('home.explore.title')
const routes = useMemo((): HomeRoute[] => {
if (showEmptyWalletState) {
if (showEmptyTokenState) {
return [
{
key: SectionName.HomeExploreTab,
......@@ -181,7 +158,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
}
return tabs
}, [showEmptyWalletState, tokensTitle, nftsTitle, activityTitle, showFeedTab, exploreTitle, feedTitle])
}, [showEmptyTokenState, tokensTitle, nftsTitle, activityTitle, showFeedTab, exploreTitle, feedTitle])
useEffect(
function syncTabIndex() {
......@@ -256,7 +233,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const exploreTabScrollRef = useAnimatedRef<FlatList<any>>()
const currentScrollValue = useDerivedValue(() => {
if (showEmptyWalletState) {
if (showEmptyTokenState) {
return exploreTabScrollValue.value
} else if (tabIndex === HomeScreenTabIndex.Tokens) {
return tokensTabScrollValue.value
......@@ -269,7 +246,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
}, [
activityTabScrollValue.value,
exploreTabScrollValue.value,
showEmptyWalletState,
showEmptyTokenState,
feedTabScrollValue.value,
nftsTabScrollValue.value,
tabIndex,
......@@ -318,7 +295,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
useScrollToTop(
useRef({
scrollToTop: () => {
if (showEmptyWalletState) {
if (showEmptyTokenState) {
exploreTabScrollRef.current?.scrollToOffset({ offset: 0, animated: true })
} else if (currentTabIndex.value === HomeScreenTabIndex.NFTs && isNftTabsAtTop.value) {
setRouteTabIndex(HomeScreenTabIndex.Tokens)
......@@ -471,10 +448,10 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
() => (
<OnboardingIntroCardStack
isLoading={areBalancesLoading && balancesById === undefined}
hasTokens={!showEmptyWalletState}
hasTokens={!showEmptyTokenState}
/>
),
[showEmptyWalletState, areBalancesLoading, balancesById],
[showEmptyTokenState, areBalancesLoading, balancesById],
)
const contentHeader = useMemo(() => {
......@@ -482,7 +459,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
<Flex
backgroundColor="$surface1"
gap="$spacing8"
pb={showEmptyWalletState ? '$spacing8' : '$spacing16'}
pb={showEmptyTokenState ? '$spacing8' : '$spacing16'}
px="$spacing12"
>
<TestnetModeModal
......@@ -510,7 +487,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
</Flex>
)
}, [
showEmptyWalletState,
showEmptyTokenState,
isTestnetWarningModalOpen,
t,
handleTestnetWarningModalClose,
......@@ -522,7 +499,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
promoBanner,
])
const paddingTop = headerHeight + TAB_BAR_HEIGHT + (showEmptyWalletState ? 0 : TAB_STYLES.tabListInner.paddingTop)
const paddingTop = headerHeight + TAB_BAR_HEIGHT + (showEmptyTokenState ? 0 : TAB_STYLES.tabListInner.paddingTop)
const paddingBottom = insets.bottom + SWAP_BUTTON_HEIGHT + TAB_STYLES.tabListInner.paddingBottom + spacing.spacing12
const contentContainerStyle = useMemo<StyleProp<ViewStyle>>(
......
......@@ -11,7 +11,7 @@ import { useCompleteOnboardingCallback } from 'src/features/onboarding/hooks'
import { useNavigationHeader } from 'src/utils/useNavigationHeader'
import { Button, Flex, Text } from 'ui/src'
import { Eye, GraduationCap } from 'ui/src/components/icons'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { usePortfolioBalances } from 'uniswap/src/features/dataApi/balances'
import { ENS_SUFFIX } from 'uniswap/src/features/ens/constants'
......
......@@ -5,12 +5,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
sentry-label="Screen"
style={
{
"backgroundColor": {
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"backgroundColor": "#FFFFFF",
"flex": 1,
"flexDirection": "column",
"paddingLeft": undefined,
......@@ -86,12 +81,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
style={
{
"alignItems": "center",
"backgroundColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"backgroundColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 8,
"borderBottomRightRadius": 8,
"borderTopLeftRadius": 8,
......@@ -169,12 +159,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"color": "#222222",
"fontFamily": "Basel Grotesk",
"fontSize": 19,
"fontWeight": "400",
......@@ -192,12 +177,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
maxFontSizeMultiplier={1.4}
style={
{
"color": {
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"color": "#7D7D7D",
"fontFamily": "Basel Grotesk",
"fontSize": 17,
"fontWeight": "400",
......
import { useEffect, useMemo, useState } from 'react'
import { useMultiplePortfolioBalancesQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
// eslint-disable-next-line no-restricted-imports
import { usePortfolioValueModifiers } from 'uniswap/src/features/dataApi/balances'
import { useUnitagByAddress } from 'uniswap/src/features/unitags/hooks'
......
......@@ -11,7 +11,7 @@ import { TermsOfService } from 'src/screens/Onboarding/TermsOfService'
import { hideSplashScreen } from 'src/utils/splashScreen'
import { Flex, Text, TouchableArea } from 'ui/src'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { setIsTestnetModeEnabled } from 'uniswap/src/features/settings/slice'
import Trace from 'uniswap/src/features/telemetry/Trace'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
......
......@@ -43,7 +43,7 @@ import {
} from 'ui/src/components/icons'
import { iconSizes, spacing } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
......
......@@ -32,7 +32,7 @@ import GlobalIcon from 'ui/src/assets/icons/global.svg'
import TextEditIcon from 'ui/src/assets/icons/textEdit.svg'
import { iconSizes, spacing } from 'ui/src/theme'
import { AccountType } from 'uniswap/src/features/accounts/types'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useENS } from 'uniswap/src/features/ens/useENS'
import { MobileEventName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
......@@ -36,7 +36,7 @@ import { GQLQueries } from 'uniswap/src/data/graphql/uniswap-data-api/queries'
import { AssetType } from 'uniswap/src/entities/assets'
import { useBridgingTokenWithHighestBalance } from 'uniswap/src/features/bridging/hooks/tokens'
import { getChainInfo } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { TokenList } from 'uniswap/src/features/dataApi/types'
import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils'
import { useIsSupportedFiatOnRampCurrency } from 'uniswap/src/features/fiatOnRamp/hooks'
......
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Mobile App",
"extends": "../../config/tsconfig/expo.json",
"extends": "tsconfig/expo.json",
"references": [
{
"path": "../../packages/ui"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html translate="no" style="overflow-x: hidden;">
<html translate="no">
<head>
<meta charset="utf-8" />
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment