ci(release): publish latest release

parent 73588225
...@@ -4,7 +4,7 @@ Search Improvements: Enjoy an improved search algorithm, with more relevant info ...@@ -4,7 +4,7 @@ Search Improvements: Enjoy an improved search algorithm, with more relevant info
Other changes: Other changes:
- Improved backup discovery - Added haptics when repositioning favorited tokens and wallets
- Improved token selector behavior, with more relevant network filtering, as well as an improved experience when flipping input and output. - Improved token selector behavior, with more relevant network filtering, as well as an improved experience when flipping input and output.
- Improvements to NFT spam detection - Improvements to NFT spam detection
- Various bug fixes and performance improvements - Various bug fixes and performance improvements
\ No newline at end of file
extension/1.21.0 mobile/1.51.1
\ No newline at end of file \ No newline at end of file
...@@ -11,8 +11,6 @@ import { EIP712Message, isEIP712TypedData } from 'src/app/features/dappRequests/ ...@@ -11,8 +11,6 @@ import { EIP712Message, isEIP712TypedData } from 'src/app/features/dappRequests/
import { isPermit2, isUniswapXSwapRequest } from 'src/app/features/dappRequests/types/Permit2Types' import { isPermit2, isUniswapXSwapRequest } from 'src/app/features/dappRequests/types/Permit2Types'
import { Flex, Text } from 'ui/src' import { Flex, Text } from 'ui/src'
import { toSupportedChainId } from 'uniswap/src/features/chains/utils' import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
import { useHasAccountMismatchCallback } from 'uniswap/src/features/smartWallet/mismatch/hooks' import { useHasAccountMismatchCallback } from 'uniswap/src/features/smartWallet/mismatch/hooks'
import { ExplorerDataType, getExplorerLink } from 'uniswap/src/utils/linking' import { ExplorerDataType, getExplorerLink } from 'uniswap/src/utils/linking'
import { isAddress } from 'utilities/src/addresses' import { isAddress } from 'utilities/src/addresses'
...@@ -46,7 +44,6 @@ export function SignTypedDataRequestContent({ dappRequest }: SignTypedDataReques ...@@ -46,7 +44,6 @@ export function SignTypedDataRequestContent({ dappRequest }: SignTypedDataReques
function SignTypedDataRequestContentInner({ dappRequest }: SignTypedDataRequestProps): JSX.Element | null { function SignTypedDataRequestContentInner({ dappRequest }: SignTypedDataRequestProps): JSX.Element | null {
const { t } = useTranslation() const { t } = useTranslation()
const enablePermitMismatchUx = useFeatureFlag(FeatureFlags.EnablePermitMismatchUX)
const getHasMismatch = useHasAccountMismatchCallback() const getHasMismatch = useHasAccountMismatchCallback()
const parsedTypedData = JSON.parse(dappRequest.typedData) const parsedTypedData = JSON.parse(dappRequest.typedData)
...@@ -59,7 +56,7 @@ function SignTypedDataRequestContentInner({ dappRequest }: SignTypedDataRequestP ...@@ -59,7 +56,7 @@ function SignTypedDataRequestContentInner({ dappRequest }: SignTypedDataRequestP
const chainId = toSupportedChainId(domainChainId) const chainId = toSupportedChainId(domainChainId)
const hasMismatch = chainId ? getHasMismatch(chainId) : false const hasMismatch = chainId ? getHasMismatch(chainId) : false
if (enablePermitMismatchUx && hasMismatch) { if (hasMismatch) {
return <ActionCanNotBeCompletedContent /> return <ActionCanNotBeCompletedContent />
} }
......
...@@ -32,7 +32,7 @@ type TokenBalanceListProps = { ...@@ -32,7 +32,7 @@ type TokenBalanceListProps = {
export const TokenBalanceList = memo(function _TokenBalanceList({ owner }: TokenBalanceListProps): JSX.Element { export const TokenBalanceList = memo(function _TokenBalanceList({ owner }: TokenBalanceListProps): JSX.Element {
return ( return (
<Flex grow> <Flex grow>
<TokenBalanceListContextProvider isExternalProfile={false} owner={owner}> <TokenBalanceListContextProvider isExternalProfile={false} owner={owner} onPressToken={() => {}}>
<TokenBalanceListInner /> <TokenBalanceListInner />
</TokenBalanceListContextProvider> </TokenBalanceListContextProvider>
</Flex> </Flex>
...@@ -202,14 +202,14 @@ function TokenContextMenu({ ...@@ -202,14 +202,14 @@ function TokenContextMenu({
}: PropsWithChildren<{ }: PropsWithChildren<{
portfolioBalance: PortfolioBalance portfolioBalance: PortfolioBalance
}>): JSX.Element { }>): JSX.Element {
const { menuActions } = useTokenContextMenu({ const contextMenu = useTokenContextMenu({
currencyId: portfolioBalance.currencyInfo.currencyId, currencyId: portfolioBalance.currencyInfo.currencyId,
isBlocked: portfolioBalance.currencyInfo.safetyInfo?.tokenList === TokenList.Blocked, isBlocked: portfolioBalance.currencyInfo.safetyInfo?.tokenList === TokenList.Blocked,
tokenSymbolForNotification: portfolioBalance?.currencyInfo?.currency?.symbol, tokenSymbolForNotification: portfolioBalance?.currencyInfo?.currency?.symbol,
portfolioBalance, portfolioBalance,
}) })
const menuOptions = menuActions.map((action) => ({ const menuOptions = contextMenu.menuActions.map((action) => ({
label: action.title, label: action.title,
onPress: action.onPress, onPress: action.onPress,
Icon: action.Icon, Icon: action.Icon,
......
...@@ -71,9 +71,9 @@ if (isCI && datadogPropertiesAvailable) { ...@@ -71,9 +71,9 @@ if (isCI && datadogPropertiesAvailable) {
apply from: "../../../../node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle" apply from: "../../../../node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle"
} }
def devVersionName = "1.51" def devVersionName = "1.51.1"
def betaVersionName = "1.51" def betaVersionName = "1.51.1"
def prodVersionName = "1.51" def prodVersionName = "1.51.1"
android { android {
ndkVersion rootProject.ext.ndkVersion ndkVersion rootProject.ext.ndkVersion
......
...@@ -3210,7 +3210,7 @@ PODS: ...@@ -3210,7 +3210,7 @@ PODS:
- Yoga - Yoga
- RNDateTimePicker (8.2.0): - RNDateTimePicker (8.2.0):
- React-Core - React-Core
- RNDeviceInfo (10.0.2): - RNDeviceInfo (10.11.0):
- React-Core - React-Core
- RNFastImage (8.6.3): - RNFastImage (8.6.3):
- React-Core - React-Core
...@@ -3963,7 +3963,7 @@ SPEC CHECKSUMS: ...@@ -3963,7 +3963,7 @@ SPEC CHECKSUMS:
RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c
RNCMaskedView: affff96123106435ddc9799a57a8ba8edf17fe27 RNCMaskedView: affff96123106435ddc9799a57a8ba8edf17fe27
RNDateTimePicker: 40ffda97d071a98a10fdca4fa97e3977102ccd14 RNDateTimePicker: 40ffda97d071a98a10fdca4fa97e3977102ccd14
RNDeviceInfo: 0a7c1d2532aa7691f9b9925a27e43af006db4dae RNDeviceInfo: bf8a32acbcb875f568217285d1793b0e8588c974
RNFastImage: 246de6b52d7642992cfd01e2005dda36d00a6660 RNFastImage: 246de6b52d7642992cfd01e2005dda36d00a6660
RNFBApp: 4122dd41d8d7ff017b6ecf777a6224f5b349ca04 RNFBApp: 4122dd41d8d7ff017b6ecf777a6224f5b349ca04
RNFBAuth: 1632cefd787a43ba952fa52ff016e7b69fe355cb RNFBAuth: 1632cefd787a43ba952fa52ff016e7b69fe355cb
......
...@@ -3060,7 +3060,7 @@ ...@@ -3060,7 +3060,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -3113,7 +3113,7 @@ ...@@ -3113,7 +3113,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
...@@ -3166,7 +3166,7 @@ ...@@ -3166,7 +3166,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
...@@ -3219,7 +3219,7 @@ ...@@ -3219,7 +3219,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
...@@ -3257,7 +3257,7 @@ ...@@ -3257,7 +3257,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.1; IPHONEOS_DEPLOYMENT_TARGET = 15.1;
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -3293,7 +3293,7 @@ ...@@ -3293,7 +3293,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.1; IPHONEOS_DEPLOYMENT_TARGET = 15.1;
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
...@@ -3328,7 +3328,7 @@ ...@@ -3328,7 +3328,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.1; IPHONEOS_DEPLOYMENT_TARGET = 15.1;
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
...@@ -3363,7 +3363,7 @@ ...@@ -3363,7 +3363,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.1; IPHONEOS_DEPLOYMENT_TARGET = 15.1;
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
...@@ -3410,7 +3410,7 @@ ...@@ -3410,7 +3410,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -3456,7 +3456,7 @@ ...@@ -3456,7 +3456,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.widgets; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.widgets;
...@@ -3502,7 +3502,7 @@ ...@@ -3502,7 +3502,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.widgets; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.widgets;
...@@ -3548,7 +3548,7 @@ ...@@ -3548,7 +3548,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.widgets; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.widgets;
...@@ -3590,7 +3590,7 @@ ...@@ -3590,7 +3590,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -3633,7 +3633,7 @@ ...@@ -3633,7 +3633,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.WidgetIntentExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.WidgetIntentExtension;
...@@ -3676,7 +3676,7 @@ ...@@ -3676,7 +3676,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.WidgetIntentExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.WidgetIntentExtension;
...@@ -3719,7 +3719,7 @@ ...@@ -3719,7 +3719,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.WidgetIntentExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.WidgetIntentExtension;
...@@ -3755,7 +3755,7 @@ ...@@ -3755,7 +3755,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -3793,7 +3793,7 @@ ...@@ -3793,7 +3793,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -3995,7 +3995,7 @@ ...@@ -3995,7 +3995,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -4040,7 +4040,7 @@ ...@@ -4040,7 +4040,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.OneSignalNotificationServiceExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.OneSignalNotificationServiceExtension;
...@@ -4151,7 +4151,7 @@ ...@@ -4151,7 +4151,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -4223,7 +4223,7 @@ ...@@ -4223,7 +4223,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.OneSignalNotificationServiceExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.OneSignalNotificationServiceExtension;
...@@ -4334,7 +4334,7 @@ ...@@ -4334,7 +4334,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -4406,7 +4406,7 @@ ...@@ -4406,7 +4406,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.51; MARKETING_VERSION = 1.51.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.OneSignalNotificationServiceExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.OneSignalNotificationServiceExtension;
......
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
"react-native-appsflyer": "6.13.1", "react-native-appsflyer": "6.13.1",
"react-native-bootsplash": "6.3.1", "react-native-bootsplash": "6.3.1",
"react-native-context-menu-view": "1.15.0", "react-native-context-menu-view": "1.15.0",
"react-native-device-info": "10.0.2", "react-native-device-info": "10.11.0",
"react-native-dotenv": "3.2.0", "react-native-dotenv": "3.2.0",
"react-native-fast-image": "8.6.3", "react-native-fast-image": "8.6.3",
"react-native-gesture-handler": "2.21.2", "react-native-gesture-handler": "2.21.2",
......
...@@ -8,7 +8,7 @@ import { default as React, StrictMode, useCallback, useEffect, useLayoutEffect, ...@@ -8,7 +8,7 @@ import { default as React, StrictMode, useCallback, useEffect, useLayoutEffect,
import { I18nextProvider } from 'react-i18next' import { I18nextProvider } from 'react-i18next'
import { LogBox, NativeModules, StatusBar } from 'react-native' import { LogBox, NativeModules, StatusBar } from 'react-native'
import appsFlyer from 'react-native-appsflyer' import appsFlyer from 'react-native-appsflyer'
import DeviceInfo from 'react-native-device-info' import DeviceInfo, { getUniqueIdSync } from 'react-native-device-info'
import { GestureHandlerRootView } from 'react-native-gesture-handler' import { GestureHandlerRootView } from 'react-native-gesture-handler'
import { MMKV } from 'react-native-mmkv' import { MMKV } from 'react-native-mmkv'
import { OneSignal } from 'react-native-onesignal' import { OneSignal } from 'react-native-onesignal'
...@@ -79,7 +79,6 @@ import { attachUnhandledRejectionHandler, setAttributesToDatadog } from 'utiliti ...@@ -79,7 +79,6 @@ import { attachUnhandledRejectionHandler, setAttributesToDatadog } from 'utiliti
import { DDRumAction, DDRumTiming } from 'utilities/src/logger/datadog/datadogEvents' import { DDRumAction, DDRumTiming } from 'utilities/src/logger/datadog/datadogEvents'
import { logger } from 'utilities/src/logger/logger' import { logger } from 'utilities/src/logger/logger'
import { isIOS } from 'utilities/src/platform' import { isIOS } from 'utilities/src/platform'
import { useAsyncData } from 'utilities/src/react/hooks'
import { AnalyticsNavigationContextProvider } from 'utilities/src/telemetry/trace/AnalyticsNavigationContext' import { AnalyticsNavigationContextProvider } from 'utilities/src/telemetry/trace/AnalyticsNavigationContext'
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary' import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
// eslint-disable-next-line @typescript-eslint/no-restricted-imports // eslint-disable-next-line @typescript-eslint/no-restricted-imports
...@@ -122,27 +121,22 @@ function App(): JSX.Element | null { ...@@ -122,27 +121,22 @@ function App(): JSX.Element | null {
attachUnhandledRejectionHandler() attachUnhandledRejectionHandler()
setAttributesToDatadog({ buildNumber: DeviceInfo.getBuildNumber() }).catch(() => undefined) setAttributesToDatadog({ buildNumber: DeviceInfo.getBuildNumber() }).catch(() => undefined)
} }
}, [])
// We want to ensure deviceID is used as the identifier to link with analytics setDatadogUserWithUniqueId(undefined)
const fetchAndSetDeviceId = useCallback(async (): Promise<string> => {
return setDatadogUserWithUniqueId(undefined)
}, []) }, [])
const deviceId = useAsyncData(fetchAndSetDeviceId).data
const [datadogSessionSampleRate, setDatadogSessionSampleRate] = React.useState<number | undefined>(undefined) const [datadogSessionSampleRate, setDatadogSessionSampleRate] = React.useState<number | undefined>(undefined)
Storage._setProvider(statsigMMKVStorageProvider) Storage._setProvider(statsigMMKVStorageProvider)
const statsigUser: StatsigUser = useMemo( const statsigUser: StatsigUser = useMemo(
() => ({ () => ({
...(deviceId ? { userID: deviceId } : {}), userID: getUniqueIdSync(),
custom: { custom: {
app: StatsigCustomAppValue.Mobile, app: StatsigCustomAppValue.Mobile,
}, },
}), }),
[deviceId], [],
) )
const onStatsigInit = (): void => { const onStatsigInit = (): void => {
......
...@@ -29,8 +29,6 @@ import { spacing } from 'ui/src/theme' ...@@ -29,8 +29,6 @@ import { spacing } from 'ui/src/theme'
import { EthMethod } from 'uniswap/src/features/dappRequests/types' import { EthMethod } from 'uniswap/src/features/dappRequests/types'
import { isSignTypedDataRequest } from 'uniswap/src/features/dappRequests/utils' import { isSignTypedDataRequest } from 'uniswap/src/features/dappRequests/utils'
import { useTransactionGasFee } from 'uniswap/src/features/gas/hooks' import { useTransactionGasFee } from 'uniswap/src/features/gas/hooks'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
import { useHasAccountMismatchCallback } from 'uniswap/src/features/smartWallet/mismatch/hooks' import { useHasAccountMismatchCallback } from 'uniswap/src/features/smartWallet/mismatch/hooks'
import { MobileEventName, ModalName } from 'uniswap/src/features/telemetry/constants' import { MobileEventName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
...@@ -62,8 +60,6 @@ export function WalletConnectRequestModal({ onClose, request }: Props): JSX.Elem ...@@ -62,8 +60,6 @@ export function WalletConnectRequestModal({ onClose, request }: Props): JSX.Elem
const didOpenFromDeepLink = useSelector(selectDidOpenFromDeepLink) const didOpenFromDeepLink = useSelector(selectDidOpenFromDeepLink)
const chainId = request.chainId const chainId = request.chainId
const enablePermitMismatchUx = useFeatureFlag(FeatureFlags.EnablePermitMismatchUX)
const tx: providers.TransactionRequest | undefined = useMemo(() => { const tx: providers.TransactionRequest | undefined = useMemo(() => {
if (isTransactionRequest(request)) { if (isTransactionRequest(request)) {
return { ...request.transaction, chainId } return { ...request.transaction, chainId }
...@@ -258,7 +254,7 @@ export function WalletConnectRequestModal({ onClose, request }: Props): JSX.Elem ...@@ -258,7 +254,7 @@ export function WalletConnectRequestModal({ onClose, request }: Props): JSX.Elem
) )
} }
if (enablePermitMismatchUx && hasMismatch && isSignTypedDataRequest(request)) { if (hasMismatch && isSignTypedDataRequest(request)) {
return <ActionCannotBeCompletedContent request={request} onReject={onReject} /> return <ActionCannotBeCompletedContent request={request} onReject={onReject} />
} }
......
...@@ -14,7 +14,6 @@ import { useAppFiatCurrency } from 'uniswap/src/features/fiatCurrency/hooks' ...@@ -14,7 +14,6 @@ import { useAppFiatCurrency } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks' import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks' import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
import { MobileUserPropertyName, setUserProperty } from 'uniswap/src/features/telemetry/user' import { MobileUserPropertyName, setUserProperty } from 'uniswap/src/features/telemetry/user'
import { logger } from 'utilities/src/logger/logger'
import { isAndroid } from 'utilities/src/platform' import { isAndroid } from 'utilities/src/platform'
// eslint-disable-next-line @typescript-eslint/no-restricted-imports // eslint-disable-next-line @typescript-eslint/no-restricted-imports
import { analytics } from 'utilities/src/telemetry/analytics/analytics' import { analytics } from 'utilities/src/telemetry/analytics/analytics'
...@@ -78,13 +77,7 @@ export function TraceUserProperties(): null { ...@@ -78,13 +77,7 @@ export function TraceUserProperties(): null {
// Set user properties for datadog // Set user properties for datadog
useEffect(() => { useEffect(() => {
setDatadogUserWithUniqueId(activeAccount?.address).catch(() => setDatadogUserWithUniqueId(activeAccount?.address)
logger.warn(
'TraceUserProperties',
'TraceUserProperties',
'Failed to set datadog current active address attribute',
),
)
}, [activeAccount?.address]) }, [activeAccount?.address])
// Set user properties for amplitude // Set user properties for amplitude
......
...@@ -5,6 +5,7 @@ import { SearchEmptySection } from 'src/components/explore/search/SearchEmptySec ...@@ -5,6 +5,7 @@ import { SearchEmptySection } from 'src/components/explore/search/SearchEmptySec
import { SearchResultsSection } from 'src/components/explore/search/SearchResultsSection' import { SearchResultsSection } from 'src/components/explore/search/SearchResultsSection'
import { Flex, Text, TouchableArea, flexStyles } from 'ui/src' import { Flex, Text, TouchableArea, flexStyles } from 'ui/src'
import { useTranslation } from 'react-i18next'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { FeatureFlags } from 'uniswap/src/features/gating/flags' import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
...@@ -63,15 +64,33 @@ function NewExploreSearchResultsList({ ...@@ -63,15 +64,33 @@ function NewExploreSearchResultsList({
debouncedSearchQuery: string | null debouncedSearchQuery: string | null
debouncedParsedSearchQuery: string | null debouncedParsedSearchQuery: string | null
}): JSX.Element { }): JSX.Element {
const { t } = useTranslation()
const [activeTab, setActiveTab] = useState<SearchTab>(SearchTab.All) const [activeTab, setActiveTab] = useState<SearchTab>(SearchTab.All)
// So that the linter errors if someone adds a new tab without updating the switch statement
// eslint-disable-next-line consistent-return
const getTabLabel = (tab: SearchTab): string => {
switch (tab) {
case SearchTab.All:
return t('common.all')
case SearchTab.Tokens:
return t('common.tokens')
case SearchTab.Pools:
return t('common.pools')
case SearchTab.Wallets:
return t('explore.search.section.wallets')
case SearchTab.NFTCollections:
return t('common.nfts')
}
}
return ( return (
<Trace section={SectionName.ExploreSearch}> <Trace section={SectionName.ExploreSearch}>
<Flex row px="$spacing20" pt="$spacing16" pb="$spacing8" gap="$spacing16"> <Flex row px="$spacing20" pt="$spacing16" pb="$spacing8" gap="$spacing16">
{MOBILE_SEARCH_TABS.map((tab) => ( {MOBILE_SEARCH_TABS.map((tab) => (
<TouchableArea key={tab} onPress={() => setActiveTab(tab)}> <TouchableArea key={tab} onPress={() => setActiveTab(tab)}>
<Text color={activeTab === tab ? '$neutral1' : '$neutral2'} variant="buttonLabel2"> <Text color={activeTab === tab ? '$neutral1' : '$neutral2'} variant="buttonLabel2">
{tab} {getTabLabel(tab)}
</Text> </Text>
</TouchableArea> </TouchableArea>
))} ))}
......
import { DdSdkReactNative } from '@datadog/mobile-react-native' import { DdSdkReactNative } from '@datadog/mobile-react-native'
import { getUniqueIdSync } from 'react-native-device-info'
import { MobileUserPropertyName } from 'uniswap/src/features/telemetry/user' import { MobileUserPropertyName } from 'uniswap/src/features/telemetry/user'
import { getUniqueId } from 'utilities/src/device/getUniqueId'
export async function setDatadogUserWithUniqueId(activeAddress: Maybe<Address>): Promise<string> { export function setDatadogUserWithUniqueId(activeAddress: Maybe<Address>): void {
const uniqueId = await getUniqueId()
DdSdkReactNative.setUser({ DdSdkReactNative.setUser({
id: uniqueId, id: getUniqueIdSync(),
...(activeAddress ? { [MobileUserPropertyName.ActiveWalletAddress]: activeAddress } : {}), ...(activeAddress ? { [MobileUserPropertyName.ActiveWalletAddress]: activeAddress } : {}),
}).catch(() => undefined) }).catch(() => undefined)
return uniqueId
} }
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
"react-i18next": "14.1.0", "react-i18next": "14.1.0",
"react-native": "0.76.9", "react-native": "0.76.9",
"react-native-appsflyer": "6.13.1", "react-native-appsflyer": "6.13.1",
"react-native-device-info": "10.0.2", "react-native-device-info": "10.11.0",
"react-native-gesture-handler": "2.21.2", "react-native-gesture-handler": "2.21.2",
"react-native-localize": "2.2.6", "react-native-localize": "2.2.6",
"react-native-mmkv": "2.10.1", "react-native-mmkv": "2.10.1",
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
"promise": "8.3.0", "promise": "8.3.0",
"react": "18.3.1", "react": "18.3.1",
"react-native": "0.76.9", "react-native": "0.76.9",
"react-native-device-info": "10.0.2", "react-native-device-info": "10.11.0",
"react-test-renderer": "18.3.1", "react-test-renderer": "18.3.1",
"redux": "4.2.1", "redux": "4.2.1",
"subscriptions-transport-ws": "0.11.0", "subscriptions-transport-ws": "0.11.0",
......
import { memo, useMemo } from 'react' import { memo, useCallback } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { Flex, Shine, Text, TouchableArea, isWeb, useIsDarkMode } from 'ui/src' import { Flex, Shine, Text, TouchableArea, isWeb, useIsDarkMode } from 'ui/src'
import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo' import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo'
...@@ -45,14 +45,8 @@ export const TokenBalanceItem = memo(function _TokenBalanceItem({ ...@@ -45,14 +45,8 @@ export const TokenBalanceItem = memo(function _TokenBalanceItem({
// Ensure items rerender when theme is switched // Ensure items rerender when theme is switched
useIsDarkMode() useIsDarkMode()
// Only return a function if onPressToken is provided, otherwise onPress is always defined and this element will intercept all clicks. const onPress = useCallback((): void => {
const onPress = useMemo(() => { onPressToken?.(currencyInfo.currencyId)
if (!onPressToken) {
return undefined
}
return (): void => {
onPressToken(currencyInfo.currencyId)
}
}, [currencyInfo.currencyId, onPressToken]) }, [currencyInfo.currencyId, onPressToken])
const shortenedSymbol = getSymbolDisplayText(currency.symbol) const shortenedSymbol = getSymbolDisplayText(currency.symbol)
......
...@@ -33,7 +33,7 @@ type TokenBalanceListContextState = { ...@@ -33,7 +33,7 @@ type TokenBalanceListContextState = {
isWarmLoading: boolean isWarmLoading: boolean
rows: Array<TokenBalanceListRow> rows: Array<TokenBalanceListRow>
setHiddenTokensExpanded: Dispatch<SetStateAction<boolean>> setHiddenTokensExpanded: Dispatch<SetStateAction<boolean>>
onPressToken?: (currencyId: CurrencyId) => void onPressToken: (currencyId: CurrencyId) => void
} }
export const TokenBalanceListContext = createContext<TokenBalanceListContextState | undefined>(undefined) export const TokenBalanceListContext = createContext<TokenBalanceListContextState | undefined>(undefined)
...@@ -46,7 +46,7 @@ export function TokenBalanceListContextProvider({ ...@@ -46,7 +46,7 @@ export function TokenBalanceListContextProvider({
}: PropsWithChildren<{ }: PropsWithChildren<{
owner: Address owner: Address
isExternalProfile: boolean isExternalProfile: boolean
onPressToken?: (currencyId: CurrencyId) => void onPressToken: (currencyId: CurrencyId) => void
}>): JSX.Element { }>): JSX.Element {
const { const {
data: balancesById, data: balancesById,
......
...@@ -16930,7 +16930,7 @@ __metadata: ...@@ -16930,7 +16930,7 @@ __metadata:
react-native-bootsplash: 6.3.1 react-native-bootsplash: 6.3.1
react-native-clean-project: 4.0.1 react-native-clean-project: 4.0.1
react-native-context-menu-view: 1.15.0 react-native-context-menu-view: 1.15.0
react-native-device-info: 10.0.2 react-native-device-info: 10.11.0
react-native-dotenv: 3.2.0 react-native-dotenv: 3.2.0
react-native-fast-image: 8.6.3 react-native-fast-image: 8.6.3
react-native-gesture-handler: 2.21.2 react-native-gesture-handler: 2.21.2
...@@ -39692,12 +39692,12 @@ __metadata: ...@@ -39692,12 +39692,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react-native-device-info@npm:10.0.2": "react-native-device-info@npm:10.11.0":
version: 10.0.2 version: 10.11.0
resolution: "react-native-device-info@npm:10.0.2" resolution: "react-native-device-info@npm:10.11.0"
peerDependencies: peerDependencies:
react-native: "*" react-native: "*"
checksum: 751274e5e2cec4f47f70a8b8ca7f3d7ce465a6dd022a5f935fd1a3fd81e4cb1a8b1072ee02d26047ba57da887b8dba0ea67888b238db4de6e0dbfa68fc079f13 checksum: 3f2de34df4e95e87291673fe69b09d3b96f9088177a8dadd92eccec86549cea63ca08ab82f120d4150eb0302ac721ad8a5e4b3a8136c9f54f0212e4c055762b0
languageName: node languageName: node
linkType: hard linkType: hard
...@@ -46066,7 +46066,7 @@ __metadata: ...@@ -46066,7 +46066,7 @@ __metadata:
react-i18next: 14.1.0 react-i18next: 14.1.0
react-native: 0.76.9 react-native: 0.76.9
react-native-appsflyer: 6.13.1 react-native-appsflyer: 6.13.1
react-native-device-info: 10.0.2 react-native-device-info: 10.11.0
react-native-dotenv: 3.2.0 react-native-dotenv: 3.2.0
react-native-gesture-handler: 2.21.2 react-native-gesture-handler: 2.21.2
react-native-localize: 2.2.6 react-native-localize: 2.2.6
...@@ -46590,7 +46590,7 @@ __metadata: ...@@ -46590,7 +46590,7 @@ __metadata:
promise: 8.3.0 promise: 8.3.0
react: 18.3.1 react: 18.3.1
react-native: 0.76.9 react-native: 0.76.9
react-native-device-info: 10.0.2 react-native-device-info: 10.11.0
react-test-renderer: 18.3.1 react-test-renderer: 18.3.1
redux: 4.2.1 redux: 4.2.1
subscriptions-transport-ws: 0.11.0 subscriptions-transport-ws: 0.11.0
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