Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
interface
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
LuckySwap
interface
Commits
6fdb9e4d
Commit
6fdb9e4d
authored
May 27, 2025
by
Uniswap Labs Service Account
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ci(release): publish latest release
parent
73588225
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
79 additions
and
88 deletions
+79
-88
RELEASE
RELEASE
+1
-1
VERSION
VERSION
+1
-1
SignTypedDataRequestContent.tsx
...questContent/SignTypeData/SignTypedDataRequestContent.tsx
+1
-4
TokenBalanceList.tsx
apps/extension/src/app/features/home/TokenBalanceList.tsx
+3
-3
build.gradle
apps/mobile/android/app/build.gradle
+3
-3
Podfile.lock
apps/mobile/ios/Podfile.lock
+2
-2
project.pbxproj
apps/mobile/ios/Uniswap.xcodeproj/project.pbxproj
+24
-24
package.json
apps/mobile/package.json
+1
-1
App.tsx
apps/mobile/src/app/App.tsx
+4
-10
WalletConnectRequestModal.tsx
...nents/Requests/RequestModal/WalletConnectRequestModal.tsx
+1
-5
TraceUserProperties.tsx
apps/mobile/src/components/Trace/TraceUserProperties.tsx
+1
-8
ExploreScreenSearchResultsList.tsx
...ponents/explore/search/ExploreScreenSearchResultsList.tsx
+20
-1
user.ts
apps/mobile/src/features/datadog/user.ts
+3
-5
package.json
packages/uniswap/package.json
+1
-1
package.json
packages/utilities/package.json
+1
-1
TokenBalanceItem.tsx
packages/wallet/src/features/portfolio/TokenBalanceItem.tsx
+3
-9
TokenBalanceListContext.tsx
...wallet/src/features/portfolio/TokenBalanceListContext.tsx
+2
-2
yarn.lock
yarn.lock
+7
-7
No files found.
RELEASE
View file @
6fdb9e4d
...
...
@@ -4,7 +4,7 @@ Search Improvements: Enjoy an improved search algorithm, with more relevant info
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.
- Improvements to NFT spam detection
- Various bug fixes and performance improvements
\ No newline at end of file
VERSION
View file @
6fdb9e4d
extension/1.21.0
\ No newline at end of file
mobile/1.51.1
\ No newline at end of file
apps/extension/src/app/features/dappRequests/requestContent/SignTypeData/SignTypedDataRequestContent.tsx
View file @
6fdb9e4d
...
...
@@ -11,8 +11,6 @@ import { EIP712Message, isEIP712TypedData } from 'src/app/features/dappRequests/
import
{
isPermit2
,
isUniswapXSwapRequest
}
from
'
src/app/features/dappRequests/types/Permit2Types
'
import
{
Flex
,
Text
}
from
'
ui/src
'
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
{
ExplorerDataType
,
getExplorerLink
}
from
'
uniswap/src/utils/linking
'
import
{
isAddress
}
from
'
utilities/src/addresses
'
...
...
@@ -46,7 +44,6 @@ export function SignTypedDataRequestContent({ dappRequest }: SignTypedDataReques
function
SignTypedDataRequestContentInner
({
dappRequest
}:
SignTypedDataRequestProps
):
JSX
.
Element
|
null
{
const
{
t
}
=
useTranslation
()
const
enablePermitMismatchUx
=
useFeatureFlag
(
FeatureFlags
.
EnablePermitMismatchUX
)
const
getHasMismatch
=
useHasAccountMismatchCallback
()
const
parsedTypedData
=
JSON
.
parse
(
dappRequest
.
typedData
)
...
...
@@ -59,7 +56,7 @@ function SignTypedDataRequestContentInner({ dappRequest }: SignTypedDataRequestP
const
chainId
=
toSupportedChainId
(
domainChainId
)
const
hasMismatch
=
chainId
?
getHasMismatch
(
chainId
)
:
false
if
(
enablePermitMismatchUx
&&
hasMismatch
)
{
if
(
hasMismatch
)
{
return
<
ActionCanNotBeCompletedContent
/>
}
...
...
apps/extension/src/app/features/home/TokenBalanceList.tsx
View file @
6fdb9e4d
...
...
@@ -32,7 +32,7 @@ type TokenBalanceListProps = {
export
const
TokenBalanceList
=
memo
(
function
_TokenBalanceList
({
owner
}:
TokenBalanceListProps
):
JSX
.
Element
{
return
(
<
Flex
grow
>
<
TokenBalanceListContextProvider
isExternalProfile=
{
false
}
owner=
{
owner
}
>
<
TokenBalanceListContextProvider
isExternalProfile=
{
false
}
owner=
{
owner
}
onPressToken=
{
()
=>
{}
}
>
<
TokenBalanceListInner
/>
</
TokenBalanceListContextProvider
>
</
Flex
>
...
...
@@ -202,14 +202,14 @@ function TokenContextMenu({
}:
PropsWithChildren
<
{
portfolioBalance
:
PortfolioBalance
}
>
):
JSX
.
Element
{
const
{
menuActions
}
=
useTokenContextMenu
({
const
contextMenu
=
useTokenContextMenu
({
currencyId
:
portfolioBalance
.
currencyInfo
.
currencyId
,
isBlocked
:
portfolioBalance
.
currencyInfo
.
safetyInfo
?.
tokenList
===
TokenList
.
Blocked
,
tokenSymbolForNotification
:
portfolioBalance
?.
currencyInfo
?.
currency
?.
symbol
,
portfolioBalance
,
})
const
menuOptions
=
menuActions
.
map
((
action
)
=>
({
const
menuOptions
=
contextMenu
.
menuActions
.
map
((
action
)
=>
({
label
:
action
.
title
,
onPress
:
action
.
onPress
,
Icon
:
action
.
Icon
,
...
...
apps/mobile/android/app/build.gradle
View file @
6fdb9e4d
...
...
@@ -71,9 +71,9 @@ if (isCI && datadogPropertiesAvailable) {
apply
from:
"../../../../node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle"
}
def
devVersionName
=
"1.51"
def
betaVersionName
=
"1.51"
def
prodVersionName
=
"1.51"
def
devVersionName
=
"1.51
.1
"
def
betaVersionName
=
"1.51
.1
"
def
prodVersionName
=
"1.51
.1
"
android
{
ndkVersion
rootProject
.
ext
.
ndkVersion
...
...
apps/mobile/ios/Podfile.lock
View file @
6fdb9e4d
...
...
@@ -3210,7 +3210,7 @@ PODS:
- Yoga
- RNDateTimePicker (8.2.0):
- React-Core
- RNDeviceInfo (10.
0.2
):
- RNDeviceInfo (10.
11.0
):
- React-Core
- RNFastImage (8.6.3):
- React-Core
...
...
@@ -3963,7 +3963,7 @@ SPEC CHECKSUMS:
RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c
RNCMaskedView: affff96123106435ddc9799a57a8ba8edf17fe27
RNDateTimePicker: 40ffda97d071a98a10fdca4fa97e3977102ccd14
RNDeviceInfo:
0a7c1d2532aa7691f9b9925a27e43af006db4dae
RNDeviceInfo:
bf8a32acbcb875f568217285d1793b0e8588c974
RNFastImage: 246de6b52d7642992cfd01e2005dda36d00a6660
RNFBApp: 4122dd41d8d7ff017b6ecf777a6224f5b349ca04
RNFBAuth: 1632cefd787a43ba952fa52ff016e7b69fe355cb
...
...
apps/mobile/ios/Uniswap.xcodeproj/project.pbxproj
View file @
6fdb9e4d
...
...
@@ -3060,7 +3060,7 @@
"@executable_path/Frameworks"
,
"@loader_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_ENABLE_DEBUG_INFO
=
INCLUDE_SOURCE
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_DEBUG"
;
...
...
@@ -3113,7 +3113,7 @@
"@executable_path/Frameworks"
,
"@loader_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
schemes.WidgetsCore
;
...
...
@@ -3166,7 +3166,7 @@
"@executable_path/Frameworks"
,
"@loader_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
schemes.WidgetsCore
;
...
...
@@ -3219,7 +3219,7 @@
"@executable_path/Frameworks"
,
"@loader_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
schemes.WidgetsCore
;
...
...
@@ -3257,7 +3257,7 @@
GCC_C_LANGUAGE_STANDARD
=
gnu11
;
GENERATE_INFOPLIST_FILE
=
YES
;
IPHONEOS_DEPLOYMENT_TARGET
=
15.1
;
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_ENABLE_DEBUG_INFO
=
INCLUDE_SOURCE
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_DEBUG"
;
...
...
@@ -3293,7 +3293,7 @@
GCC_C_LANGUAGE_STANDARD
=
gnu11
;
GENERATE_INFOPLIST_FILE
=
YES
;
IPHONEOS_DEPLOYMENT_TARGET
=
15.1
;
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
schemes.WidgetsCoreTests
;
...
...
@@ -3328,7 +3328,7 @@
GCC_C_LANGUAGE_STANDARD
=
gnu11
;
GENERATE_INFOPLIST_FILE
=
YES
;
IPHONEOS_DEPLOYMENT_TARGET
=
15.1
;
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
schemes.WidgetsCoreTests
;
...
...
@@ -3363,7 +3363,7 @@
GCC_C_LANGUAGE_STANDARD
=
gnu11
;
GENERATE_INFOPLIST_FILE
=
YES
;
IPHONEOS_DEPLOYMENT_TARGET
=
15.1
;
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
schemes.WidgetsCoreTests
;
...
...
@@ -3410,7 +3410,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_ENABLE_DEBUG_INFO
=
INCLUDE_SOURCE
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_DEBUG"
;
...
...
@@ -3456,7 +3456,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.widgets
;
...
...
@@ -3502,7 +3502,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.dev.widgets
;
...
...
@@ -3548,7 +3548,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.beta.widgets
;
...
...
@@ -3590,7 +3590,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_ENABLE_DEBUG_INFO
=
INCLUDE_SOURCE
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_DEBUG"
;
...
...
@@ -3633,7 +3633,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.WidgetIntentExtension
;
...
...
@@ -3676,7 +3676,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.dev.WidgetIntentExtension
;
...
...
@@ -3719,7 +3719,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.beta.WidgetIntentExtension
;
...
...
@@ -3755,7 +3755,7 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"-ObjC"
,
...
...
@@ -3793,7 +3793,7 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"-ObjC"
,
...
...
@@ -3995,7 +3995,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_ENABLE_DEBUG_INFO
=
INCLUDE_SOURCE
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_DEBUG"
;
...
...
@@ -4040,7 +4040,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.OneSignalNotificationServiceExtension
;
...
...
@@ -4151,7 +4151,7 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"-ObjC"
,
...
...
@@ -4223,7 +4223,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.beta.OneSignalNotificationServiceExtension
;
...
...
@@ -4334,7 +4334,7 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"-ObjC"
,
...
...
@@ -4406,7 +4406,7 @@
"@executable_path/Frameworks"
,
"@executable_path/../../Frameworks"
,
);
MARKETING_VERSION
=
1.51
;
MARKETING_VERSION
=
1.51
.1
;
MTL_FAST_MATH
=
YES
;
OTHER_SWIFT_FLAGS
=
"$(inherited) -D EXPO_CONFIGURATION_RELEASE"
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.uniswap.mobile.dev.OneSignalNotificationServiceExtension
;
...
...
apps/mobile/package.json
View file @
6fdb9e4d
...
...
@@ -130,7 +130,7 @@
"react-native-appsflyer"
:
"6.13.1"
,
"react-native-bootsplash"
:
"6.3.1"
,
"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-fast-image"
:
"8.6.3"
,
"react-native-gesture-handler"
:
"2.21.2"
,
...
...
apps/mobile/src/app/App.tsx
View file @
6fdb9e4d
...
...
@@ -8,7 +8,7 @@ import { default as React, StrictMode, useCallback, useEffect, useLayoutEffect,
import
{
I18nextProvider
}
from
'
react-i18next
'
import
{
LogBox
,
NativeModules
,
StatusBar
}
from
'
react-native
'
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
{
MMKV
}
from
'
react-native-mmkv
'
import
{
OneSignal
}
from
'
react-native-onesignal
'
...
...
@@ -79,7 +79,6 @@ import { attachUnhandledRejectionHandler, setAttributesToDatadog } from 'utiliti
import
{
DDRumAction
,
DDRumTiming
}
from
'
utilities/src/logger/datadog/datadogEvents
'
import
{
logger
}
from
'
utilities/src/logger/logger
'
import
{
isIOS
}
from
'
utilities/src/platform
'
import
{
useAsyncData
}
from
'
utilities/src/react/hooks
'
import
{
AnalyticsNavigationContextProvider
}
from
'
utilities/src/telemetry/trace/AnalyticsNavigationContext
'
import
{
ErrorBoundary
}
from
'
wallet/src/components/ErrorBoundary/ErrorBoundary
'
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
...
...
@@ -122,27 +121,22 @@ function App(): JSX.Element | null {
attachUnhandledRejectionHandler
()
setAttributesToDatadog
({
buildNumber
:
DeviceInfo
.
getBuildNumber
()
}).
catch
(()
=>
undefined
)
}
},
[])
// We want to ensure deviceID is used as the identifier to link with analytics
const
fetchAndSetDeviceId
=
useCallback
(
async
():
Promise
<
string
>
=>
{
return
setDatadogUserWithUniqueId
(
undefined
)
setDatadogUserWithUniqueId
(
undefined
)
},
[])
const
deviceId
=
useAsyncData
(
fetchAndSetDeviceId
).
data
const
[
datadogSessionSampleRate
,
setDatadogSessionSampleRate
]
=
React
.
useState
<
number
|
undefined
>
(
undefined
)
Storage
.
_setProvider
(
statsigMMKVStorageProvider
)
const
statsigUser
:
StatsigUser
=
useMemo
(
()
=>
({
...(
deviceId
?
{
userID
:
deviceId
}
:
{}
),
userID
:
getUniqueIdSync
(
),
custom
:
{
app
:
StatsigCustomAppValue
.
Mobile
,
},
}),
[
deviceId
],
[],
)
const
onStatsigInit
=
():
void
=>
{
...
...
apps/mobile/src/components/Requests/RequestModal/WalletConnectRequestModal.tsx
View file @
6fdb9e4d
...
...
@@ -29,8 +29,6 @@ import { spacing } from 'ui/src/theme'
import
{
EthMethod
}
from
'
uniswap/src/features/dappRequests/types
'
import
{
isSignTypedDataRequest
}
from
'
uniswap/src/features/dappRequests/utils
'
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
{
MobileEventName
,
ModalName
}
from
'
uniswap/src/features/telemetry/constants
'
import
{
sendAnalyticsEvent
}
from
'
uniswap/src/features/telemetry/send
'
...
...
@@ -62,8 +60,6 @@ export function WalletConnectRequestModal({ onClose, request }: Props): JSX.Elem
const
didOpenFromDeepLink
=
useSelector
(
selectDidOpenFromDeepLink
)
const
chainId
=
request
.
chainId
const
enablePermitMismatchUx
=
useFeatureFlag
(
FeatureFlags
.
EnablePermitMismatchUX
)
const
tx
:
providers
.
TransactionRequest
|
undefined
=
useMemo
(()
=>
{
if
(
isTransactionRequest
(
request
))
{
return
{
...
request
.
transaction
,
chainId
}
...
...
@@ -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
}
/>
}
...
...
apps/mobile/src/components/Trace/TraceUserProperties.tsx
View file @
6fdb9e4d
...
...
@@ -14,7 +14,6 @@ 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
'
import
{
MobileUserPropertyName
,
setUserProperty
}
from
'
uniswap/src/features/telemetry/user
'
import
{
logger
}
from
'
utilities/src/logger/logger
'
import
{
isAndroid
}
from
'
utilities/src/platform
'
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
import
{
analytics
}
from
'
utilities/src/telemetry/analytics/analytics
'
...
...
@@ -78,13 +77,7 @@ export function TraceUserProperties(): null {
// Set user properties for datadog
useEffect
(()
=>
{
setDatadogUserWithUniqueId
(
activeAccount
?.
address
).
catch
(()
=>
logger
.
warn
(
'
TraceUserProperties
'
,
'
TraceUserProperties
'
,
'
Failed to set datadog current active address attribute
'
,
),
)
setDatadogUserWithUniqueId
(
activeAccount
?.
address
)
},
[
activeAccount
?.
address
])
// Set user properties for amplitude
...
...
apps/mobile/src/components/explore/search/ExploreScreenSearchResultsList.tsx
View file @
6fdb9e4d
...
...
@@ -5,6 +5,7 @@ import { SearchEmptySection } from 'src/components/explore/search/SearchEmptySec
import
{
SearchResultsSection
}
from
'
src/components/explore/search/SearchResultsSection
'
import
{
Flex
,
Text
,
TouchableArea
,
flexStyles
}
from
'
ui/src
'
import
{
useTranslation
}
from
'
react-i18next
'
import
{
UniverseChainId
}
from
'
uniswap/src/features/chains/types
'
import
{
FeatureFlags
}
from
'
uniswap/src/features/gating/flags
'
import
{
useFeatureFlag
}
from
'
uniswap/src/features/gating/hooks
'
...
...
@@ -63,15 +64,33 @@ function NewExploreSearchResultsList({
debouncedSearchQuery
:
string
|
null
debouncedParsedSearchQuery
:
string
|
null
}):
JSX
.
Element
{
const
{
t
}
=
useTranslation
()
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
(
<
Trace
section=
{
SectionName
.
ExploreSearch
}
>
<
Flex
row
px=
"$spacing20"
pt=
"$spacing16"
pb=
"$spacing8"
gap=
"$spacing16"
>
{
MOBILE_SEARCH_TABS
.
map
((
tab
)
=>
(
<
TouchableArea
key=
{
tab
}
onPress=
{
()
=>
setActiveTab
(
tab
)
}
>
<
Text
color=
{
activeTab
===
tab
?
'
$neutral1
'
:
'
$neutral2
'
}
variant=
"buttonLabel2"
>
{
tab
}
{
getTabLabel
(
tab
)
}
</
Text
>
</
TouchableArea
>
))
}
...
...
apps/mobile/src/features/datadog/user.ts
View file @
6fdb9e4d
import
{
DdSdkReactNative
}
from
'
@datadog/mobile-react-native
'
import
{
getUniqueIdSync
}
from
'
react-native-device-info
'
import
{
MobileUserPropertyName
}
from
'
uniswap/src/features/telemetry/user
'
import
{
getUniqueId
}
from
'
utilities/src/device/getUniqueId
'
export
async
function
setDatadogUserWithUniqueId
(
activeAddress
:
Maybe
<
Address
>
):
Promise
<
string
>
{
const
uniqueId
=
await
getUniqueId
()
export
function
setDatadogUserWithUniqueId
(
activeAddress
:
Maybe
<
Address
>
):
void
{
DdSdkReactNative
.
setUser
({
id
:
uniqueId
,
id
:
getUniqueIdSync
()
,
...(
activeAddress
?
{
[
MobileUserPropertyName
.
ActiveWalletAddress
]:
activeAddress
}
:
{}),
}).
catch
(()
=>
undefined
)
return
uniqueId
}
packages/uniswap/package.json
View file @
6fdb9e4d
...
...
@@ -87,7 +87,7 @@
"react-i18next"
:
"14.1.0"
,
"react-native"
:
"0.76.9"
,
"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-localize"
:
"2.2.6"
,
"react-native-mmkv"
:
"2.10.1"
,
...
...
packages/utilities/package.json
View file @
6fdb9e4d
...
...
@@ -27,7 +27,7 @@
"promise"
:
"8.3.0"
,
"react"
:
"18.3.1"
,
"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"
,
"redux"
:
"4.2.1"
,
"subscriptions-transport-ws"
:
"0.11.0"
,
...
...
packages/wallet/src/features/portfolio/TokenBalanceItem.tsx
View file @
6fdb9e4d
import
{
memo
,
use
Memo
}
from
'
react
'
import
{
memo
,
use
Callback
}
from
'
react
'
import
{
useTranslation
}
from
'
react-i18next
'
import
{
Flex
,
Shine
,
Text
,
TouchableArea
,
isWeb
,
useIsDarkMode
}
from
'
ui/src
'
import
{
TokenLogo
}
from
'
uniswap/src/components/CurrencyLogo/TokenLogo
'
...
...
@@ -45,14 +45,8 @@ export const TokenBalanceItem = memo(function _TokenBalanceItem({
// Ensure items rerender when theme is switched
useIsDarkMode
()
// Only return a function if onPressToken is provided, otherwise onPress is always defined and this element will intercept all clicks.
const
onPress
=
useMemo
(()
=>
{
if
(
!
onPressToken
)
{
return
undefined
}
return
():
void
=>
{
onPressToken
(
currencyInfo
.
currencyId
)
}
const
onPress
=
useCallback
(():
void
=>
{
onPressToken
?.(
currencyInfo
.
currencyId
)
},
[
currencyInfo
.
currencyId
,
onPressToken
])
const
shortenedSymbol
=
getSymbolDisplayText
(
currency
.
symbol
)
...
...
packages/wallet/src/features/portfolio/TokenBalanceListContext.tsx
View file @
6fdb9e4d
...
...
@@ -33,7 +33,7 @@ type TokenBalanceListContextState = {
isWarmLoading
:
boolean
rows
:
Array
<
TokenBalanceListRow
>
setHiddenTokensExpanded
:
Dispatch
<
SetStateAction
<
boolean
>>
onPressToken
?
:
(
currencyId
:
CurrencyId
)
=>
void
onPressToken
:
(
currencyId
:
CurrencyId
)
=>
void
}
export
const
TokenBalanceListContext
=
createContext
<
TokenBalanceListContextState
|
undefined
>
(
undefined
)
...
...
@@ -46,7 +46,7 @@ export function TokenBalanceListContextProvider({
}:
PropsWithChildren
<
{
owner
:
Address
isExternalProfile
:
boolean
onPressToken
?
:
(
currencyId
:
CurrencyId
)
=>
void
onPressToken
:
(
currencyId
:
CurrencyId
)
=>
void
}
>
):
JSX
.
Element
{
const
{
data
:
balancesById
,
...
...
yarn.lock
View file @
6fdb9e4d
...
...
@@ -16930,7 +16930,7 @@ __metadata:
react-native-bootsplash: 6.3.1
react-native-clean-project: 4.0.1
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-fast-image: 8.6.3
react-native-gesture-handler: 2.21.2
...
...
@@ -39692,12 +39692,12 @@ __metadata:
languageName: node
linkType: hard
"react-native-device-info@npm:10.
0.2
":
version: 10.
0.2
resolution: "react-native-device-info@npm:10.
0.2
"
"react-native-device-info@npm:10.
11.0
":
version: 10.
11.0
resolution: "react-native-device-info@npm:10.
11.0
"
peerDependencies:
react-native: "*"
checksum:
751274e5e2cec4f47f70a8b8ca7f3d7ce465a6dd022a5f935fd1a3fd81e4cb1a8b1072ee02d26047ba57da887b8dba0ea67888b238db4de6e0dbfa68fc079f13
checksum:
3f2de34df4e95e87291673fe69b09d3b96f9088177a8dadd92eccec86549cea63ca08ab82f120d4150eb0302ac721ad8a5e4b3a8136c9f54f0212e4c055762b0
languageName: node
linkType: hard
...
...
@@ -46066,7 +46066,7 @@ __metadata:
react-i18next: 14.1.0
react-native: 0.76.9
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-gesture-handler: 2.21.2
react-native-localize: 2.2.6
...
...
@@ -46590,7 +46590,7 @@ __metadata:
promise: 8.3.0
react: 18.3.1
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
redux: 4.2.1
subscriptions-transport-ws: 0.11.0
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment