Skip to content

Commit f499f54

Browse files
ci(release): publish latest release
1 parent 830fbd6 commit f499f54

File tree

6 files changed

+37
-125
lines changed

6 files changed

+37
-125
lines changed

RELEASE

Lines changed: 6 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmQY8h9hoqVp2nqyiK9W1VSqyFij9yG2UzMfZGbVR9hcfq`
3-
- CIDv1: `bafybeibavbtwbt67v3e6xufqkwzfhb47pyuavqudshfmqxp33zuvx5efpa`
2+
- CIDv0: `QmTQqr7ckQqN7ncCEsymtg82FzqqLErWZtxrNqYbZWrhw6`
3+
- CIDv1: `bafybeicllvnavu3b6ygl2dqoi7z2hj4lsdeilowenblayhvxvprpsyzcle`
44

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

@@ -10,97 +10,14 @@ 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://bafybeibavbtwbt67v3e6xufqkwzfhb47pyuavqudshfmqxp33zuvx5efpa.ipfs.dweb.link/
14-
- [ipfs://QmQY8h9hoqVp2nqyiK9W1VSqyFij9yG2UzMfZGbVR9hcfq/](ipfs://QmQY8h9hoqVp2nqyiK9W1VSqyFij9yG2UzMfZGbVR9hcfq/)
13+
- https://bafybeicllvnavu3b6ygl2dqoi7z2hj4lsdeilowenblayhvxvprpsyzcle.ipfs.dweb.link/
14+
- [ipfs://QmTQqr7ckQqN7ncCEsymtg82FzqqLErWZtxrNqYbZWrhw6/](ipfs://QmTQqr7ckQqN7ncCEsymtg82FzqqLErWZtxrNqYbZWrhw6/)
1515

16-
## 5.83.0 (2025-05-07)
17-
18-
19-
### Features
20-
21-
* **web:** add analytics event for embedded wallet sign in (#18908) 4258201
22-
* **web:** add batched capability to legacy swap tx and gas info (#19139) 7e98a92
23-
* **web:** add feature flags for permit mismatch (#19007) 0890576
24-
* **web:** add pools to recent searches (#17403) 5ffc92b
25-
* **web:** allow slippage in create, increase, and decrease (#18674) 0a37dcc
26-
* **web:** batch analytics [staging mirror] (#19335) b59b8de
27-
* **web:** batched swap feature flag (#19169) fd30fb3
28-
* **web:** clean up web state, smartWallet reducer, hooks, etc (#18961) 0e3840e
29-
* **web:** create toast component for mismatch case (#18962) 8cbd058
30-
* **web:** create useMismatchAccount (#18870) f2ce7ed
31-
* **web:** delegation mismatch modal (#18980) 301a7de
32-
* **web:** disable uniswapx on quote args if mismatch account (#18907) 185d1a4
33-
* **web:** gate limit order feature for mismatched delegation (#18979) 840d1f8
34-
* **web:** implement permit tx step in UI / saga (#18898) 8b7362d
35-
* **web:** limited support ui in mini p (#18990) daff0c4
36-
* **web:** multi mismatch calls (#18955) 737f851
37-
* **web:** mweb sign in connector polish (#18968) 2928718
38-
* **web:** pass uniquote enabled to trading api requests (#18984) d3ea833
39-
* **web:** poll 5792 txs (#19138) 36f8910
40-
* **web:** prevent passkey sign in/up when iframed (#19015) f4174c5
41-
* **web:** Recently connected modal polish (#18790) f1291d6
42-
* **web:** retry with standard swap if batched fails (#19303) 8a774d3
43-
* **web:** Sign In UX polish (#18798) 5805f2d
44-
* **web:** submit batched transactions (#19079) 8c769ec
45-
* **web:** track atomic supported chains (#19163) abda850
46-
* **web:** track delegate status as user properties (#19331) d71c1ac
47-
* **web:** track user prop delegate status (#19286) (#19308) 8168cfa
48-
* **web:** update activity type and relevant UI (#19130) f0a6e65
16+
### 5.83.1 (2025-05-07)
4917

5018

5119
### Bug Fixes
5220

53-
* **web:** add additional statsig api urls to our csp.json file (#19034) ce2b43a
54-
* **web:** add uniquote to ff modal (#19032) 073bf6c
55-
* **web:** Adjust layout of TDP Stats (#18034) 747daed
56-
* **web:** allow .env.defaults in the public repo (#19164) ed9e9f7
57-
* **web:** allow access to testnet or mainnet tdps (#19166) 1dec896
58-
* **web:** change colors of Slippage Input border when in a warning state (#18013) e04838e
59-
* **web:** change numbers on the landing page (#18431) 7588d1b
60-
* **web:** Change tooltip shadow color to black and align styling with Spore style (#18028) b531277
61-
* **web:** check against all chains for mismatch (#19027) 08df5c7
62-
* **web:** consistent delta arrow for amts close to zero (#18954) b55f4fb
63-
* **web:** default to eth on mainnet for buy form (#18976) 6cb69dd
64-
* **web:** display helper modal when token or pool not found (#18801) ff3a040
65-
* **web:** don't fetch approvals when smartWallet or batched enabled (#19140) ba4a3b6
66-
* **web:** fix approval call for create + increase (#19224) ffb2f62
67-
* **web:** Fix styling of outage banner (#19113) 74318ed
68-
* **web:** fix username in header via Web3Status (#18885) 97e6ed6
69-
* **web:** Get The App playwright test (#19099) 4c9fa04
70-
* **web:** improve lp page performance - extraneous quote requests (#18958) 0c8e6e2
71-
* **web:** log statsig events to datadog (#19042) 72a7bac
72-
* **web:** missing permit tx (#19327) 4358581
73-
* **web:** more code splitting (#19086) a137af7
74-
* **web:** parse both number and hex from getCapabilities (#19200) 9041a85
75-
* **web:** persist toast forever (#19067) e52c747
76-
* **web:** revert - track user prop delegate status [staging only] (#19311) c57a266
77-
* **web:** tick tooltip overlap with graph boundary (#18971) 5e2e849
78-
* **web:** Update app icon SVG so it renders properly in Safari (#18031) 01c0e75
79-
* **web:** Update opacify util (#19037) 6dddf59
80-
* **web:** update tx toast styles (#17640) 57d23a1
81-
* **web:** use neutral1 color as the default text color for NumericalInputSymbol (#18901) 0e324f2
82-
83-
84-
### Continuous Integration
85-
86-
* **web:** update sitemaps 6462060
87-
88-
89-
### Tests
90-
91-
* **web:** improved slack reporter (#19107) a828bf4
92-
* **web:** remaining swap tests (#19090) b52a122
93-
* **web:** stub gql SearchTokens in LP e2e test (#18964) b754a4a
94-
* **web:** swap settings e2e tests (#19087) d757545
95-
* **web:** test statsig flags (#19127) f15d67c
96-
* **web:** wrap tests (#19091) 2036ab5
97-
98-
99-
### Code Refactoring
100-
101-
* **web:** break out fn and useMutation (#18869) 0b940c7
102-
* **web:** break out what vs how of useRoutingApiAruguments (#18905) 0d1c4d4
103-
* **web:** clean up routing type condition (#18906) ba8be91
104-
* **web:** move createGetRoutingAPIArguments to file (#18909) d58014c
21+
* **web:** downgrade two errors to warnings (#19345) 88caf96
10522

10623

VERSION

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

apps/web/src/state/walletCapabilities/lib/handleGetCapabilities.test.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jest.mock('components/Web3Provider/wagmiConfig', () => ({
1818
jest.mock('utilities/src/logger/logger', () => ({
1919
getLogger: jest.fn(() => ({
2020
error: jest.fn(),
21+
warn: jest.fn(),
2122
})),
2223
}))
2324

@@ -41,14 +42,14 @@ describe('walletCapabilities', () => {
4142

4243
it('returns null for invalid response', async () => {
4344
// Make sure the logger is properly mocked before the test
44-
const mockLoggerError = jest.fn()
45-
;(getLogger as jest.Mock).mockReturnValue({ error: mockLoggerError })
45+
const mockLoggerWarn = jest.fn()
46+
;(getLogger as jest.Mock).mockReturnValue({ error: jest.fn(), warn: mockLoggerWarn })
4647

4748
// Invalid mock response (missing 0x prefix)
4849
;(wagmi_getCapabilities as jest.Mock).mockResolvedValue({ asdada: { atomic: { status: 'supported' } } })
4950

5051
expect(await handleGetCapabilities()).toBeNull()
51-
expect(mockLoggerError).toHaveBeenCalled()
52+
expect(mockLoggerWarn).toHaveBeenCalled()
5253
})
5354

5455
it('returns null on timeout', async () => {
@@ -60,12 +61,12 @@ describe('walletCapabilities', () => {
6061

6162
it('returns null on error', async () => {
6263
// Make sure the logger is properly mocked before the test
63-
const mockLoggerError = jest.fn()
64-
;(getLogger as jest.Mock).mockReturnValue({ error: mockLoggerError })
64+
const mockLoggerWarn = jest.fn()
65+
;(getLogger as jest.Mock).mockReturnValue({ error: jest.fn(), warn: mockLoggerWarn })
6566
;(wagmi_getCapabilities as jest.Mock).mockRejectedValue(new Error('API error'))
6667

6768
expect(await handleGetCapabilities()).toBeNull()
68-
expect(mockLoggerError).toHaveBeenCalled()
69+
expect(mockLoggerWarn).toHaveBeenCalled()
6970
})
7071
})
7172

apps/web/src/state/walletCapabilities/lib/handleGetCapabilities.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,7 @@ export async function handleGetCapabilities(): Promise<GetCapabilitiesResult | n
3030
if (error instanceof Error && error.message.includes('getCapabilities timeout')) {
3131
return null
3232
}
33-
getLogger().error(error || new Error('Unknown error getting capabilities'), {
34-
tags: {
35-
file: 'useWalletCapabilities.ts',
36-
function: 'handleGetCapabilities',
37-
},
38-
})
33+
getLogger().warn('useWalletCapabilities', 'handleGetCapabilities', `Error getting capabilities: ${error}`)
3934
return null
4035
} finally {
4136
// prevent memory leaks

packages/ui/src/theme/color/utils.test.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { opacifyRaw } from 'ui/src/theme'
33
jest.mock('utilities/src/logger/logger', () => ({
44
logger: {
55
error: jest.fn(),
6+
warn: jest.fn(),
67
},
78
}))
89

@@ -34,26 +35,27 @@ describe(opacifyRaw, () => {
3435

3536
it.each`
3637
amount | color | expectedError
37-
${110} | ${'#aaaaaa'} | ${'provided opacity 110 should be between 0 and 100'}
38-
${110.99} | ${'#aaaaaa'} | ${'provided opacity 110.99 should be between 0 and 100'}
39-
${-10} | ${'#123456'} | ${'provided opacity -10 should be between 0 and 100'}
40-
${-10.11} | ${'#123456'} | ${'provided opacity -10.11 should be between 0 and 100'}
41-
${undefined} | ${'123456'} | ${'provided opacity undefined should be between 0 and 100'}
42-
${50} | ${undefined} | ${"Cannot read properties of undefined (reading 'startsWith')"}
43-
${50} | ${'123456'} | ${'provided color 123456 is neither a hex nor an rgb color'}
44-
${50} | ${'#12'} | ${'provided color #12 was not in hexadecimal format (e.g. #000000)'}
45-
${50} | ${'#gggggg'} | ${'provided color #gggggg contains invalid characters, should be a valid hex (e.g. #000000)'}
46-
${50} | ${'rgb(1,1,'} | ${'provided color rgb(1,1, is invalid rgb format'}
47-
${50} | ${'rgb(1,1)'} | ${'provided color rgb(1,1) does not have enough components'}
48-
${50} | ${'rgbv(1,1,1,1)'} | ${'provided color rgbv(1,1,1,1) is neither a hex nor an rgb color'}
49-
${100} | ${'rgba(255, 255, 255, 0.5)'} | ${'provided color rgba(255, 255, 255, 0.5) is neither a hex nor an rgb color'}
50-
${30} | ${'rgba(255, 255, 255, 0.5)'} | ${'provided color rgba(255, 255, 255, 0.5) is neither a hex nor an rgb color'}
51-
${33.111111} | ${'rgba(255, 255, 255, 0.5)'} | ${'provided color rgba(255, 255, 255, 0.5) is neither a hex nor an rgb color'}
38+
${110} | ${'#aaaaaa'} | ${'Error: provided opacity 110 should be between 0 and 100'}
39+
${110.99} | ${'#aaaaaa'} | ${'Error: provided opacity 110.99 should be between 0 and 100'}
40+
${-10} | ${'#123456'} | ${'Error: provided opacity -10 should be between 0 and 100'}
41+
${-10.11} | ${'#123456'} | ${'Error: provided opacity -10.11 should be between 0 and 100'}
42+
${undefined} | ${'123456'} | ${'Error: provided opacity undefined should be between 0 and 100'}
43+
${50} | ${undefined} | ${"TypeError: Cannot read properties of undefined (reading 'startsWith')"}
44+
${50} | ${'123456'} | ${'Error: provided color 123456 is neither a hex nor an rgb color'}
45+
${50} | ${'#12'} | ${'Error: provided color #12 was not in hexadecimal format (e.g. #000000)'}
46+
${50} | ${'#gggggg'} | ${'Error: provided color #gggggg contains invalid characters, should be a valid hex (e.g. #000000)'}
47+
${50} | ${'rgb(1,1,'} | ${'Error: provided color rgb(1,1, is invalid rgb format'}
48+
${50} | ${'rgb(1,1)'} | ${'Error: provided color rgb(1,1) does not have enough components'}
49+
${50} | ${'rgbv(1,1,1,1)'} | ${'Error: provided color rgbv(1,1,1,1) is neither a hex nor an rgb color'}
50+
${100} | ${'rgba(255, 255, 255, 0.5)'} | ${'Error: provided color rgba(255, 255, 255, 0.5) is neither a hex nor an rgb color'}
51+
${30} | ${'rgba(255, 255, 255, 0.5)'} | ${'Error: provided color rgba(255, 255, 255, 0.5) is neither a hex nor an rgb color'}
52+
${33.111111} | ${'rgba(255, 255, 255, 0.5)'} | ${'Error: provided color rgba(255, 255, 255, 0.5) is neither a hex nor an rgb color'}
5253
`('should throw an error when (amount=$amount, color=$color)', async ({ amount, color, expectedError }) => {
5354
opacifyRaw(amount, color)
54-
expect(logger.error).toHaveBeenCalledWith(new Error(expectedError), {
55-
tags: { file: 'color/utils', function: 'opacifyRaw' },
56-
extra: { args: [amount, color] },
57-
})
55+
expect(logger.warn).toHaveBeenCalledWith(
56+
'color/utils',
57+
'opacifyRaw',
58+
`Error opacifying color ${color} with opacity ${amount}: ${expectedError}`,
59+
)
5860
})
5961
})

packages/ui/src/theme/color/utils.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ export function opacifyRaw(opacity: number, color: string): string {
3636
}
3737
throw new Error(`provided color ${color} is neither a hex nor an rgb color`)
3838
} catch (e) {
39-
logger.error(e, {
40-
tags: { file: 'color/utils', function: 'opacifyRaw' },
41-
extra: { args: [opacity, color] },
42-
})
39+
logger.warn('color/utils', 'opacifyRaw', `Error opacifying color ${color} with opacity ${opacity}: ${e}`)
4340
}
4441
return color
4542
}

0 commit comments

Comments
 (0)