Skip to content

Commit 9a511c8

Browse files
ci(release): publish latest release
1 parent 5a7e99f commit 9a511c8

File tree

918 files changed

+17211
-19081
lines changed

Some content is hidden

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

918 files changed

+17211
-19081
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ yarn-error.log*
4141
dist/out-tsc/*
4242

4343
# Locale backup/generated files
44-
packages/wallet/src/i18n/locales/source/*_old.json
45-
packages/wallet/src/i18n/locales/@types/resources.d.ts
44+
packages/uniswap/src/i18n/locales/source/*_old.json
45+
packages/uniswap/src/i18n/locales/@types/resources.d.ts
4646

4747
# ci
4848
.ci-cache/
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/dist/cjs/createAnimations.native.js b/dist/cjs/createAnimations.native.js
2+
index 8ef9a4b03e660025bd16f4d15ec9e82ead963be0..023de8bf1955d83f0483917f4d6e0a5205d6fb17 100644
3+
--- a/dist/cjs/createAnimations.native.js
4+
+++ b/dist/cjs/createAnimations.native.js
5+
@@ -163,7 +163,7 @@ function createAnimations(animations) {
6+
else {
7+
var animateOnly = props.animateOnly;
8+
for (var key in style)
9+
- !import_web.stylePropsAll[key] || neverAnimate[key] || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = style[key] : animate[key] = style[key];
10+
+ !import_web.stylePropsAll[key] || neverAnimate[key] || style[key] === 'auto' || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = style[key] : animate[key] = style[key];
11+
}
12+
var animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(function() {
13+
return JSON.parse(animateStr);

.yarn/patches/zone.js-npm-0.14.4-2d2e93cd7c.patch

Lines changed: 0 additions & 58 deletions
This file was deleted.

RELEASE

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
We are back with another round of small updates. Here’s what’s new:
1+
Excited to share some new updates! Here’s what’s new:
22

3-
Unicons Updates — these auto-generated icons are refreshed to be more visually appealing. You may have received a new one.
3+
Expanded Fiat On-ramp Providers — We’ve added more provider options to on-ramp to crypto from your wallet, dependent on your geography.
44

55
Other changes:
66

7-
- Various UI fixes to our fiat-on ramp screens
8-
- Various bug fixes related to stale notifications
7+
- Polish around view-only wallets
8+
- Various bug fixes and performance improvements

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
mobile/1.23
1+
mobile/1.24

apps/mobile/.eslintignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ jest.config.js
44
metro.config.js
55
node_modules
66

7-
generated*.ts
8-
__generated__/
9-
107
storybook-static
118

129
coverage

apps/mobile/.prettierignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
11
ios
22
android
3-
src/abis/types
4-
generated*.ts
5-
__generated__/
6-
.eslintrc.js
3+
.eslintrc.js

apps/mobile/android/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,17 @@ android {
131131
dev {
132132
isDefault(true)
133133
applicationIdSuffix ".dev"
134-
versionName "1.23"
134+
versionName "1.24"
135135
dimension "variant"
136136
}
137137
beta {
138138
applicationIdSuffix ".beta"
139-
versionName "1.23"
139+
versionName "1.24"
140140
dimension "variant"
141141
}
142142
prod {
143143
dimension "variant"
144-
versionName "1.23"
144+
versionName "1.24"
145145
}
146146
}
147147

apps/mobile/android/app/src/dev/AndroidManifest.xml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,5 @@
77
tools:ignore="GoogleAppIndexingWarning"
88
tools:targetApi="28"
99
android:networkSecurityConfig="@xml/network_security_config">
10-
<activity
11-
android:name=".MainActivity"
12-
android:exported="true">
13-
<intent-filter android:autoVerify="true" android:priority="2">
14-
<action android:name="android.intent.action.VIEW" />
15-
16-
<category android:name="android.intent.category.DEFAULT" />
17-
<category android:name="android.intent.category.BROWSABLE" />
18-
19-
<data android:scheme="https" />
20-
<data android:host="uniswap.org" />
21-
<data android:host="app.uniswap.org" />
22-
<data android:host="uniswap.com" />
23-
<data android:host="app.uniswap.com" />
24-
</intent-filter>
25-
</activity>
26-
2710
</application>
2811
</manifest>

apps/mobile/android/app/src/main/AndroidManifest.xml

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,55 @@
4242
<data android:scheme="uniswap" />
4343
</intent-filter>
4444
<intent-filter>
45-
<data android:scheme="wc" />
4645
<action android:name="android.intent.action.VIEW" />
46+
4747
<category android:name="android.intent.category.DEFAULT" />
4848
<category android:name="android.intent.category.BROWSABLE" />
49+
50+
<data android:scheme="wc" />
4951
</intent-filter>
52+
<intent-filter android:autoVerify="true">
53+
<action android:name="android.intent.action.VIEW" />
54+
55+
<category android:name="android.intent.category.DEFAULT" />
56+
<category android:name="android.intent.category.BROWSABLE" />
57+
58+
<data
59+
android:scheme="https"
60+
android:host="app.uniswap.org"
61+
android:pathPrefix="/nfts/asset/" />
62+
63+
<data
64+
android:scheme="https"
65+
android:host="app.uniswap.org"
66+
android:pathPrefix="/nfts/collection/" />
67+
68+
<data
69+
android:scheme="https"
70+
android:host="app.uniswap.org"
71+
android:pathPrefix="/tokens/" />
72+
73+
<data
74+
android:scheme="https"
75+
android:host="app.uniswap.org"
76+
android:pathPrefix="/address/" />
77+
</intent-filter>
78+
<intent-filter android:autoVerify="true">
79+
<action android:name="android.intent.action.VIEW" />
80+
81+
<category android:name="android.intent.category.DEFAULT" />
82+
<category android:name="android.intent.category.BROWSABLE" />
83+
84+
<data
85+
android:scheme="https"
86+
android:host="uniswap.org"
87+
android:pathPrefix="/app" />
88+
89+
<data
90+
android:scheme="https"
91+
android:host="uniswap.org"
92+
android:pathPrefix="/app/wc" />
93+
</intent-filter>
5094
</activity>
5195
</application>
5296
</manifest>

apps/mobile/android/app/src/prod/AndroidManifest.xml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,5 @@
66
android:usesCleartextTraffic="true"
77
tools:ignore="GoogleAppIndexingWarning"
88
tools:targetApi="28">
9-
<activity
10-
android:name=".MainActivity"
11-
android:exported="true">
12-
<intent-filter android:autoVerify="true">
13-
<action android:name="android.intent.action.VIEW" />
14-
15-
<category android:name="android.intent.category.DEFAULT" />
16-
<category android:name="android.intent.category.BROWSABLE" />
17-
18-
<data android:scheme="https" />
19-
<data android:host="uniswap.org" />
20-
<data android:host="app.uniswap.org" />
21-
<data android:host="uniswap.com" />
22-
<data android:host="app.uniswap.com" />
23-
</intent-filter>
24-
</activity>
25-
269
</application>
2710
</manifest>

apps/mobile/e2e/Onboarding.e2e.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1-
import { CreateNewWallet } from './usecases/CreateNewWallet'
1+
import { CreateNewWallet } from 'e2e/usecases/onboarding/CreateNewWallet'
2+
import { ImportWallet } from 'e2e/usecases/onboarding/ImportWallet'
3+
import { WatchWallet } from 'e2e/usecases/onboarding/WatchWallet'
24

35
describe('Onboarding', () => {
4-
beforeAll(async () => {
6+
beforeEach(async () => {
57
await device.launchApp({ newInstance: true })
6-
await device.reloadReactNative()
78
})
89

9-
describe(CreateNewWallet, CreateNewWallet)
10+
afterEach(async () => {
11+
await device.uninstallApp()
12+
await device.installApp()
13+
})
14+
15+
it('creates a new wallet', CreateNewWallet)
16+
it('watches wallet', WatchWallet)
17+
it('imports a testing wallet using recovery phrase', ImportWallet)
1018
})

apps/mobile/e2e/Swap.e2e.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { WatchWallet } from 'e2e/usecases/onboarding/WatchWallet'
2+
import { SwapBasicInteractions } from 'e2e/usecases/swap/SwapBasicInteractions'
3+
4+
describe('Swap', () => {
5+
beforeAll(async () => {
6+
await device.launchApp({ newInstance: true })
7+
await WatchWallet()
8+
})
9+
10+
it('tests swap screen interactions', SwapBasicInteractions)
11+
})
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { by, element, expect } from 'detox'
2+
import { TestWallet } from 'e2e/utils/fixtures'
3+
import { ElementName } from 'wallet/src/telemetry/constants'
4+
5+
export async function CreateNewWallet(): Promise<void> {
6+
// Selects "Create a new wallet" option on the landing screen
7+
await element(by.id(ElementName.CreateAccount)).tap()
8+
9+
// Skips unitag flow
10+
await element(by.id(ElementName.Skip)).tap()
11+
12+
// Taps "Let's keep it safe" on QRAnimation screen
13+
await element(by.id(ElementName.Next)).tap()
14+
15+
// Check is both manual and cloud backup options are available on BackupScreen
16+
await expect(element(by.id(ElementName.AddCloudBackup))).toBeVisible()
17+
await expect(element(by.id(ElementName.AddManualBackup))).toBeVisible()
18+
19+
// Picks "Manual backup" option
20+
await element(by.id(ElementName.AddManualBackup)).tap()
21+
22+
// Checks if ManualBackupScreen warning displays and taps "I'm ready" button
23+
await expect(element(by.id(ElementName.Confirm))).toBeVisible()
24+
await element(by.id(ElementName.Confirm)).tap()
25+
26+
// Taps continue on ManualBackupScreen
27+
await element(by.id(ElementName.Next)).tap()
28+
29+
// Taps continue on manual backup confirmation screen. It is replaced by mock because detox
30+
// can't interact with native screens
31+
await element(by.id(ElementName.Continue)).tap()
32+
33+
// Skips notification setup by tapping "Maybe later" button
34+
await element(by.id(ElementName.Skip)).tap()
35+
36+
// Skips biometrics setup by tapping "Maybe later" button
37+
await element(by.id(ElementName.Skip)).tap()
38+
39+
// Confirms by tapping "Skip" on warning modal
40+
await element(by.id(ElementName.Confirm)).tap()
41+
42+
// Confirms if user successfuly finished create new wallet flow by checking if provided wallet name is
43+
// displayed and other
44+
await expect(element(by.text(TestWallet.name))).toBeVisible()
45+
await expect(element(by.id(ElementName.Swap))).toBeVisible()
46+
await expect(element(by.id(ElementName.SearchTokensAndWallets))).toBeVisible()
47+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { by, element, expect } from 'detox'
2+
import { TestWallet } from 'e2e/utils/fixtures'
3+
import { ElementName } from 'wallet/src/telemetry/constants'
4+
5+
export async function ImportWallet(): Promise<void> {
6+
// Selects "Add an existing wallet" option on the landing screen
7+
await element(by.id(ElementName.ImportAccount)).tap()
8+
9+
// Picks Import a wallet by recovery phase option
10+
await element(by.id(ElementName.OnboardingImportSeedPhrase)).tap()
11+
12+
// Checks if recovery phase input is in focus and types recovery phrase in
13+
await expect(element(by.id(ElementName.ImportAccountInput))).toBeFocused()
14+
await element(by.id(ElementName.ImportAccountInput)).typeText(TestWallet.recoveryPhrase)
15+
16+
// Taps continue navigating to SelectWalletScreen
17+
await element(by.id(ElementName.Continue)).tap()
18+
19+
// Taps continue on SelectWalletScreen
20+
await waitFor(element(by.id(`${ElementName.WalletCard}-1`)))
21+
.toBeVisible()
22+
.withTimeout(10000)
23+
await element(by.id(ElementName.Next)).tap()
24+
25+
// Skips cloud backup step on BackupScreen by clicking "Maybe later"
26+
await expect(element(by.id(ElementName.AddCloudBackup))).toBeVisible()
27+
await element(by.id(ElementName.Next)).tap()
28+
29+
// Skips notification setup by tapping "Maybe later" button
30+
await element(by.id(ElementName.Skip)).tap()
31+
32+
// Skips biometrics setup by tapping "Maybe later" button
33+
await element(by.id(ElementName.Skip)).tap()
34+
35+
// Confirms by tapping "Skip" on warning modal
36+
await element(by.id(ElementName.Confirm)).tap()
37+
38+
// Confirms if user successfuly finished create new wallet flow by checking if provided wallet name is
39+
// displayed and other
40+
await expect(element(by.text(TestWallet.name))).toBeVisible()
41+
await expect(element(by.id(ElementName.Swap))).toBeVisible()
42+
await expect(element(by.id(ElementName.SearchTokensAndWallets))).toBeVisible()
43+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { by, element, expect } from 'detox'
2+
import { TestWatchedWallet } from 'e2e/utils/fixtures'
3+
import { ElementName } from 'wallet/src/telemetry/constants'
4+
5+
export async function WatchWallet(): Promise<void> {
6+
// Selects "Add an existing wallet" option on the landing screen
7+
await element(by.id(ElementName.ImportAccount)).tap()
8+
9+
// Picks Watch a wallet option on ImportMethodScreen
10+
await element(by.id(ElementName.WatchWallet)).tap()
11+
12+
// Checks if wallet name is in focus and types recovery phrase in
13+
await expect(element(by.id(ElementName.ImportAccountInput))).toBeFocused()
14+
await element(by.id(ElementName.ImportAccountInput)).typeText(TestWatchedWallet.ens)
15+
16+
// Confirms the entered wallet name by tapping "continue"
17+
await element(by.id(ElementName.Next)).tap()
18+
19+
// Checks if Home screen is displayed with a proper user name
20+
await expect(element(by.text(TestWatchedWallet.displayName))).toBeVisible()
21+
await expect(element(by.id(ElementName.Swap))).toBeVisible()
22+
await expect(element(by.id(ElementName.SearchTokensAndWallets))).toBeVisible()
23+
}

0 commit comments

Comments
 (0)