Skip to content

Commit eac088b

Browse files
ci(release): publish latest release
1 parent 84ef9a0 commit eac088b

File tree

470 files changed

+7756
-4963
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

470 files changed

+7756
-4963
lines changed

RELEASE

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmZ8D4oPRH7CbNZ1ULVQedBkTLJhqv539kRTmifrva49GM`
3-
- CIDv1: `bafybeifaiclxh6pc3bdtrrkpbvvqqxq6hz5r6htdzxaga4fikfpu2u56qi`
2+
- CIDv0: `QmWZERyNmMf7JhDQJ8mXYLPdchuQjWNdc5Z3sKN6C9bsL9`
3+
- CIDv1: `bafybeid2c2mdeiiysuldtcrlma2oaydsigt4ev55cttcb53zk6ldw7cozy`
44

55
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
66

@@ -10,15 +10,38 @@ You can also access the Uniswap Interface from an IPFS gateway.
1010
Your Uniswap settings are never remembered across different URLs.
1111

1212
IPFS gateways:
13-
- https://bafybeifaiclxh6pc3bdtrrkpbvvqqxq6hz5r6htdzxaga4fikfpu2u56qi.ipfs.dweb.link/
14-
- https://bafybeifaiclxh6pc3bdtrrkpbvvqqxq6hz5r6htdzxaga4fikfpu2u56qi.ipfs.cf-ipfs.com/
15-
- [ipfs://QmZ8D4oPRH7CbNZ1ULVQedBkTLJhqv539kRTmifrva49GM/](ipfs://QmZ8D4oPRH7CbNZ1ULVQedBkTLJhqv539kRTmifrva49GM/)
13+
- https://bafybeid2c2mdeiiysuldtcrlma2oaydsigt4ev55cttcb53zk6ldw7cozy.ipfs.dweb.link/
14+
- https://bafybeid2c2mdeiiysuldtcrlma2oaydsigt4ev55cttcb53zk6ldw7cozy.ipfs.cf-ipfs.com/
15+
- [ipfs://QmWZERyNmMf7JhDQJ8mXYLPdchuQjWNdc5Z3sKN6C9bsL9/](ipfs://QmWZERyNmMf7JhDQJ8mXYLPdchuQjWNdc5Z3sKN6C9bsL9/)
1616

17-
### 5.16.2 (2024-02-28)
17+
## 5.17.0 (2024-03-06)
18+
19+
20+
### Features
21+
22+
* **web:** [info] Shorthand for timestamps (#6675) 6b63c99
23+
* **web:** [info] truncate long token names in Tables (#6682) 402ba22
24+
* **web:** [info] Use sentence case for Swap in All Tx Table (#6687) f59d68d
25+
* **web:** add disclaimer to limits in more places (#6609) 0467d43
26+
* **web:** add more limits disclaimers 4345063
27+
* **web:** add more limits disclaimers (#6738) 5dc1070
28+
* **web:** adding USDC to Celo (#6641) a34ea26
29+
* **web:** Rename Ether -> Ethereum (#6661) 1f2efb3
1830

1931

2032
### Bug Fixes
2133

22-
* **web:** [hotfix] [limits] presets (#6638) 4f8964b
34+
* **web:** [info] Fixes blocking Testlio feedback (#6724) 2bbc8f8
35+
* **web:** [limits] presets breaking (#6634) 0036a7a
36+
* **web:** fix react lifecycle warning by setting in useEffect (#6663) c4f9753
37+
* **web:** fixes for Limits Menu on mobile layout (#6726) 7b44537
38+
* **web:** limits gas estimates hotfix (#6729) 02de460
39+
* **web:** merge Token fields in Apollo cache (#6611) 1d4853a
40+
* **web:** use correct all-time swappers (#6635) c1394d6
41+
42+
43+
### Code Refactoring
44+
45+
* **web:** Remove no longer needed ternary since BE update (#6688) 9af401a
2346

2447

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
web/5.16.2
1+
web/5.17.0

apps/mobile/android/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,17 +125,17 @@ android {
125125
dev {
126126
isDefault(true)
127127
applicationIdSuffix ".dev"
128-
versionName "1.22"
128+
versionName "1.23"
129129
dimension "variant"
130130
}
131131
beta {
132132
applicationIdSuffix ".beta"
133-
versionName "1.22"
133+
versionName "1.23"
134134
dimension "variant"
135135
}
136136
prod {
137137
dimension "variant"
138-
versionName "1.22"
138+
versionName "1.23"
139139
}
140140
}
141141

apps/mobile/ios/Uniswap.xcodeproj/project.pbxproj

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2450,7 +2450,7 @@
24502450
"@executable_path/Frameworks",
24512451
"@executable_path/../../Frameworks",
24522452
);
2453-
MARKETING_VERSION = 1.22;
2453+
MARKETING_VERSION = 1.23;
24542454
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
24552455
MTL_FAST_MATH = YES;
24562456
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -2496,7 +2496,7 @@
24962496
"@executable_path/Frameworks",
24972497
"@executable_path/../../Frameworks",
24982498
);
2499-
MARKETING_VERSION = 1.22;
2499+
MARKETING_VERSION = 1.23;
25002500
MTL_FAST_MATH = YES;
25012501
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
25022502
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.widgets;
@@ -2542,7 +2542,7 @@
25422542
"@executable_path/Frameworks",
25432543
"@executable_path/../../Frameworks",
25442544
);
2545-
MARKETING_VERSION = 1.22;
2545+
MARKETING_VERSION = 1.23;
25462546
MTL_FAST_MATH = YES;
25472547
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
25482548
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.widgets;
@@ -2588,7 +2588,7 @@
25882588
"@executable_path/Frameworks",
25892589
"@executable_path/../../Frameworks",
25902590
);
2591-
MARKETING_VERSION = 1.22;
2591+
MARKETING_VERSION = 1.23;
25922592
MTL_FAST_MATH = YES;
25932593
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
25942594
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.widgets;
@@ -2630,7 +2630,7 @@
26302630
"@executable_path/Frameworks",
26312631
"@executable_path/../../Frameworks",
26322632
);
2633-
MARKETING_VERSION = 1.22;
2633+
MARKETING_VERSION = 1.23;
26342634
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
26352635
MTL_FAST_MATH = YES;
26362636
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -2673,7 +2673,7 @@
26732673
"@executable_path/Frameworks",
26742674
"@executable_path/../../Frameworks",
26752675
);
2676-
MARKETING_VERSION = 1.22;
2676+
MARKETING_VERSION = 1.23;
26772677
MTL_FAST_MATH = YES;
26782678
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
26792679
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.WidgetIntentExtension;
@@ -2716,7 +2716,7 @@
27162716
"@executable_path/Frameworks",
27172717
"@executable_path/../../Frameworks",
27182718
);
2719-
MARKETING_VERSION = 1.22;
2719+
MARKETING_VERSION = 1.23;
27202720
MTL_FAST_MATH = YES;
27212721
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
27222722
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.WidgetIntentExtension;
@@ -2759,7 +2759,7 @@
27592759
"@executable_path/Frameworks",
27602760
"@executable_path/../../Frameworks",
27612761
);
2762-
MARKETING_VERSION = 1.22;
2762+
MARKETING_VERSION = 1.23;
27632763
MTL_FAST_MATH = YES;
27642764
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
27652765
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.WidgetIntentExtension;
@@ -2795,7 +2795,7 @@
27952795
"$(inherited)",
27962796
"@executable_path/Frameworks",
27972797
);
2798-
MARKETING_VERSION = 1.22;
2798+
MARKETING_VERSION = 1.23;
27992799
OTHER_LDFLAGS = (
28002800
"$(inherited)",
28012801
"-ObjC",
@@ -2833,7 +2833,7 @@
28332833
"$(inherited)",
28342834
"@executable_path/Frameworks",
28352835
);
2836-
MARKETING_VERSION = 1.22;
2836+
MARKETING_VERSION = 1.23;
28372837
OTHER_LDFLAGS = (
28382838
"$(inherited)",
28392839
"-ObjC",
@@ -3003,7 +3003,7 @@
30033003
"@executable_path/Frameworks",
30043004
"@executable_path/../../Frameworks",
30053005
);
3006-
MARKETING_VERSION = 1.22;
3006+
MARKETING_VERSION = 1.23;
30073007
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
30083008
MTL_FAST_MATH = YES;
30093009
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -3047,7 +3047,7 @@
30473047
"@executable_path/Frameworks",
30483048
"@executable_path/../../Frameworks",
30493049
);
3050-
MARKETING_VERSION = 1.22;
3050+
MARKETING_VERSION = 1.23;
30513051
MTL_FAST_MATH = YES;
30523052
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
30533053
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.OneSignalNotificationServiceExtension;
@@ -3143,7 +3143,7 @@
31433143
"$(inherited)",
31443144
"@executable_path/Frameworks",
31453145
);
3146-
MARKETING_VERSION = 1.22;
3146+
MARKETING_VERSION = 1.23;
31473147
OTHER_LDFLAGS = (
31483148
"$(inherited)",
31493149
"-ObjC",
@@ -3214,7 +3214,7 @@
32143214
"@executable_path/Frameworks",
32153215
"@executable_path/../../Frameworks",
32163216
);
3217-
MARKETING_VERSION = 1.22;
3217+
MARKETING_VERSION = 1.23;
32183218
MTL_FAST_MATH = YES;
32193219
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
32203220
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.OneSignalNotificationServiceExtension;
@@ -3310,7 +3310,7 @@
33103310
"$(inherited)",
33113311
"@executable_path/Frameworks",
33123312
);
3313-
MARKETING_VERSION = 1.22;
3313+
MARKETING_VERSION = 1.23;
33143314
OTHER_LDFLAGS = (
33153315
"$(inherited)",
33163316
"-ObjC",
@@ -3381,7 +3381,7 @@
33813381
"@executable_path/Frameworks",
33823382
"@executable_path/../../Frameworks",
33833383
);
3384-
MARKETING_VERSION = 1.22;
3384+
MARKETING_VERSION = 1.23;
33853385
MTL_FAST_MATH = YES;
33863386
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
33873387
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.OneSignalNotificationServiceExtension;

apps/mobile/jest-setup.js

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import mockRNCNetInfo from '@react-native-community/netinfo/jest/netinfo-mock.js
55
import 'core-js' // necessary so setImmediate works in tests
66
import { localizeMock as mockRNLocalize } from 'react-native-localize/mock'
77
import { AppearanceSettingType } from 'wallet/src/features/appearance/slice'
8-
import { MockLocalizationContext } from 'wallet/src/test/utils'
8+
import { initializeTranslation } from 'wallet/src/i18n/i18n'
9+
import { mockLocalizationContext } from 'wallet/src/test/mocks/utils'
910

1011
// avoids polluting console in test runs, while keeping important log levels
1112
global.console = {
@@ -18,6 +19,9 @@ global.console = {
1819
// error: jest.fn(),
1920
}
2021

22+
// Uses real translations for tests
23+
initializeTranslation()
24+
2125
// Mock Sentry crash reporting
2226
jest.mock('@sentry/react-native', () => ({
2327
init: () => jest.fn(),
@@ -83,7 +87,7 @@ jest.mock('@react-navigation/elements', () => ({
8387

8488
require('react-native-reanimated').setUpTests()
8589

86-
jest.mock('wallet/src/features/language/LocalizationContext', () => MockLocalizationContext)
90+
jest.mock('wallet/src/features/language/LocalizationContext', () => mockLocalizationContext)
8791

8892
jest.mock('react-native/Libraries/Share/Share', () => ({
8993
share: jest.fn(),
@@ -111,22 +115,6 @@ jest.mock('react-native/Libraries/Linking/Linking', () => ({
111115
getInitialURL: jest.fn(),
112116
}))
113117

114-
jest.mock('react-i18next', () => ({
115-
// this mock makes sure any components using the translate hook can use it without a warning being shown
116-
useTranslation: () => {
117-
return {
118-
t: (str) => str,
119-
i18n: {
120-
changeLanguage: () => new Promise(jest.fn()),
121-
},
122-
}
123-
},
124-
initReactI18next: {
125-
type: '3rdParty',
126-
init: jest.fn(),
127-
},
128-
}))
129-
130118
// Mock the appearance hook for all tests
131119
const mockAppearanceSetting = AppearanceSettingType.System
132120
jest.mock('wallet/src/features/appearance/hooks', () => {

apps/mobile/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@
143143
"rive-react-native": "6.1.1",
144144
"statsig-react-native": "4.11.0",
145145
"typed-redux-saga": "1.5.0",
146+
"uniswap": "workspace:^",
146147
"utilities": "workspace:^",
147148
"wallet": "workspace:^"
148149
},

apps/mobile/src/app/ErrorBoundary.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ function ErrorScreen({ error }: { error: Error }): JSX.Element {
7272
<Flex centered grow gap="$spacing36">
7373
<Image source={DEAD_LUNI} style={styles.errorImage} />
7474
<Flex centered gap="$spacing8">
75-
<Text variant="subheading1">{t('Uh oh!')}</Text>
76-
<Text variant="body2">{t('Something crashed.')}</Text>
75+
<Text variant="subheading1">{t('errors.crash.title')}</Text>
76+
<Text variant="body2">{t('errors.crash.message')}</Text>
7777
</Flex>
7878
{error.message && __DEV__ && <Text variant="body2">{error.message}</Text>}
7979
</Flex>
@@ -82,7 +82,7 @@ function ErrorScreen({ error }: { error: Error }): JSX.Element {
8282
onPress={(): void => {
8383
RNRestart.Restart()
8484
}}>
85-
{t('Restart app')}
85+
{t('errors.crash.restart')}
8686
</Button>
8787
</Flex>
8888
</Flex>

apps/mobile/src/app/MobileWalletNavigationProvider.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { closeModal, openModal } from 'src/features/modals/modalSlice'
66
import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex'
77
import { Screens } from 'src/screens/Screens'
88
import {
9+
NavigateToNftItemArgs,
910
NavigateToSwapFlowArgs,
1011
WalletNavigationProvider,
1112
} from 'wallet/src/contexts/WalletNavigationContext'
@@ -16,6 +17,7 @@ export function MobileWalletNavigationProvider({ children }: PropsWithChildren):
1617
const navigateToAccountActivityList = useNavigateToHomepageTab(HomeScreenTabIndex.Activity)
1718
const navigateToAccountTokenList = useNavigateToHomepageTab(HomeScreenTabIndex.Tokens)
1819
const navigateToBuyOrReceiveWithEmptyWallet = useNavigateToBuyOrReceiveWithEmptyWallet()
20+
const navigateToNftDetails = useNavigateToNftDetails()
1921
const navigateToSwapFlow = useNavigateToSwapFlow()
2022
const navigateToTokenDetails = useNavigateToTokenDetails()
2123

@@ -24,6 +26,7 @@ export function MobileWalletNavigationProvider({ children }: PropsWithChildren):
2426
navigateToAccountActivityList={navigateToAccountActivityList}
2527
navigateToAccountTokenList={navigateToAccountTokenList}
2628
navigateToBuyOrReceiveWithEmptyWallet={navigateToBuyOrReceiveWithEmptyWallet}
29+
navigateToNftDetails={navigateToNftDetails}
2730
navigateToSwapFlow={navigateToSwapFlow}
2831
navigateToTokenDetails={navigateToTokenDetails}>
2932
{children}
@@ -64,6 +67,23 @@ function useNavigateToTokenDetails(): (currencyId: string) => void {
6467
)
6568
}
6669

70+
function useNavigateToNftDetails(): (args: NavigateToNftItemArgs) => void {
71+
const navigation = useAppStackNavigation()
72+
73+
return useCallback(
74+
({ owner, address, tokenId, isSpam, fallbackData }: NavigateToNftItemArgs): void => {
75+
navigation.navigate(Screens.NFTItem, {
76+
owner,
77+
address,
78+
tokenId,
79+
isSpam,
80+
fallbackData,
81+
})
82+
},
83+
[navigation]
84+
)
85+
}
86+
6787
function useNavigateToBuyOrReceiveWithEmptyWallet(): () => void {
6888
const dispatch = useAppDispatch()
6989

apps/mobile/src/app/migrations.test.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,25 @@ import {
9797
} from 'wallet/src/features/wallet/accounts/types'
9898
import { initialWalletState, SwapProtectionSetting } from 'wallet/src/features/wallet/slice'
9999
import { ModalName } from 'wallet/src/telemetry/constants'
100-
import { account, fiatOnRampTxDetailsFailed, txDetailsConfirmed } from 'wallet/src/test/fixtures'
100+
import {
101+
fiatPurchaseTransactionInfo,
102+
signerMnemonicAccount,
103+
transactionDetails,
104+
} from 'wallet/src/test/fixtures'
105+
106+
const account = signerMnemonicAccount()
107+
108+
const txDetailsConfirmed = transactionDetails({
109+
status: TransactionStatus.Success,
110+
})
111+
const fiatOnRampTxDetailsFailed = transactionDetails({
112+
status: TransactionStatus.Failed,
113+
typeInfo: fiatPurchaseTransactionInfo({
114+
explorerUrl:
115+
'https://buy-sandbox.moonpay.com/transaction_receipt?transactionId=d6c32bb5-7cd9-4c22-8f46-6bbe786c599f',
116+
id: 'd6c32bb5-7cd9-4c22-8f46-6bbe786c599f',
117+
}),
118+
})
101119

102120
// helps with object assignment
103121
// eslint-disable-next-line @typescript-eslint/no-explicit-any

apps/mobile/src/app/modals/AccountSwitcherModal.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import { MobileState } from 'src/app/reducer'
66
import { initialModalState } from 'src/features/modals/modalSlice'
77
import { render } from 'src/test/test-utils'
88
import { ModalName } from 'wallet/src/telemetry/constants'
9-
import { mockWalletPreloadedState } from 'wallet/src/test/fixtures'
10-
import { noOpFunction } from 'wallet/src/test/utils'
9+
import { ACCOUNT } from 'wallet/src/test/fixtures'
10+
import { mockWalletPreloadedState, noOpFunction } from 'wallet/src/test/mocks'
1111

1212
const preloadedState = {
13-
...mockWalletPreloadedState,
13+
...mockWalletPreloadedState(ACCOUNT),
1414
modals: {
1515
...initialModalState,
1616
[ModalName.AccountSwitcher]: { isOpen: true },

0 commit comments

Comments
 (0)