Skip to content

Commit 7939ac8

Browse files
ci(release): publish latest release
1 parent 5a1edbe commit 7939ac8

6 files changed

Lines changed: 40 additions & 46 deletions

File tree

RELEASE

Lines changed: 6 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmQToF1qiuAjejy6i8taYNKVGVw2eehvVKb8mimGtzmdnt`
3-
- CIDv1: `bafybeia7rqlhhzrec6fjpzeo2eh3ayuiiqrkqehr2puihgnpw5xabvisqu`
2+
- CIDv0: `Qmare3scA791vEczmDbddpWRgmipd2LyBeHGoV53RzqJWd`
3+
- CIDv1: `bafybeifz7lwau4w4z7awqjzujhgnff4lpwxrj533xk3n6skzpjmvzpyhvi`
44

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

@@ -10,51 +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://bafybeia7rqlhhzrec6fjpzeo2eh3ayuiiqrkqehr2puihgnpw5xabvisqu.ipfs.dweb.link/
14-
- [ipfs://QmQToF1qiuAjejy6i8taYNKVGVw2eehvVKb8mimGtzmdnt/](ipfs://QmQToF1qiuAjejy6i8taYNKVGVw2eehvVKb8mimGtzmdnt/)
13+
- https://bafybeifz7lwau4w4z7awqjzujhgnff4lpwxrj533xk3n6skzpjmvzpyhvi.ipfs.dweb.link/
14+
- [ipfs://Qmare3scA791vEczmDbddpWRgmipd2LyBeHGoV53RzqJWd/](ipfs://Qmare3scA791vEczmDbddpWRgmipd2LyBeHGoV53RzqJWd/)
1515

16-
## 5.79.0 (2025-04-16)
17-
18-
19-
### Features
20-
21-
* **web:** [EW] add EW redux state and Recently Signed In Modal (#18035) f78e203
22-
* **web:** [EW] add ExternallyConnectableExtension dynamic config to select which extension the web app will communicate with (#18226) 211a6f8
23-
* **web:** [EW] Add new passkeys to wallet (#14816) a06b597
24-
* **web:** [EW] Be able to delete passkeys (#14817) 53cf094
25-
* **web:** [EW] Modify Sign In Connector (#17668) eb6e89f
26-
* **web:** add apr section to position page (#18078) 328c45a
27-
* **web:** add low network native balance warning for send (#18248) 1eb12a9
28-
* **web:** add username to EW registration (#18084) 5ac58a5
29-
* **web:** allow Low network token balance warning to show for interface (#18102) d756982
30-
* **web:** lp incentive position card updates (#18044) d50e225
31-
* **web:** update positions page with lp incentive boost treatments (#18026) 4211bdc
16+
### 5.79.1 (2025-04-17)
3217

3318

3419
### Bug Fixes
3520

36-
* **web:** fixing arb v3 (#18421) (#18503) 6d6599f
37-
* **web:** handle async token0 or token1 in create context (#18395) ad71e5e
38-
* **web:** hotfix staging fix safari dropdown (#18468) b19c84c
39-
* **web:** move to 1 worker and fix wallet connection (#18348) c38af7e
40-
* **web:** only use mainnet in legacy searchbardropdown (#17966) de03a5d
41-
* **web:** tooltip on hover tamagui bug (#18349) 4c9c8aa
42-
* **web:** web staging builds (#18402) 8aff715
43-
44-
45-
### Continuous Integration
46-
47-
* **web:** update sitemaps 7d9688f
48-
49-
50-
### Code Refactoring
51-
52-
* **web:** kill multicall (#15064) ef6c894
53-
* **web:** move x-specifics to getUniswapXSwapTxAndGasInfo (#18180) 35560f7
54-
* **web:** rm unused indicativeTrade field from swapTxAndGasInfo (#18177) 3161013
55-
* **web:** rm useMultipleContractSingleData in legacy v2 hook (#15062) ab7b73e
56-
* **web:** rm useMultipleContractSingleData in usePools (#15063) 2dba888
57-
* **web:** rm useMultipleContractSingleData in useV2Pairs (#15061) 7549b71
58-
* **web:** rm useMultipleContractSingleData usage in useCurrencyBalance (#15059) 11995d0
21+
* **web:** v4 0 slippage at max (#18588) 07180fd
5922

6023

VERSION

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

apps/web/src/components/IncreaseLiquidity/IncreaseLiquidityTxContext.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import {
1818
import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
1919
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
2020
import { useTransactionGasFee, useUSDCurrencyAmountOfGasFee } from 'uniswap/src/features/gas/hooks'
21+
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
22+
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
2123
import { useCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo'
2224
import {
2325
IncreasePositionTxAndGasInfo,
@@ -48,6 +50,7 @@ export function IncreaseLiquidityTxContextProvider({ children }: PropsWithChildr
4850
const { derivedIncreaseLiquidityInfo, increaseLiquidityState, currentTransactionStep } = useIncreaseLiquidityContext()
4951
const { customDeadline, customSlippageTolerance } = useTransactionSettingsContext()
5052
const [hasIncreaseErrorResponse, setHasIncreaseErrorResponse] = useState(false)
53+
const v4ZeroSlippageEnabled = useFeatureFlag(FeatureFlags.V40Slippage)
5154

5255
const { currencyAmounts, error } = derivedIncreaseLiquidityInfo
5356
const { exactField } = increaseLiquidityState
@@ -141,6 +144,10 @@ export function IncreaseLiquidityTxContextProvider({ children }: PropsWithChildr
141144
exactField === PositionField.TOKEN0 ? [amount0, amount1] : [amount1, amount0]
142145
const independentToken = exactField === PositionField.TOKEN0 ? IndependentToken.TOKEN_0 : IndependentToken.TOKEN_1
143146

147+
// stopgap measure to prevent overslippage on V4 pools
148+
// TODO: remove this when we can set an upper limit on maxAmounts on protocol level
149+
const forceV4ZeroSlippage = v4ZeroSlippageEnabled && positionInfo.version === ProtocolVersion.V4
150+
144151
return {
145152
simulateTransaction: !approvalsNeeded,
146153
protocol: apiProtocolItems,
@@ -161,9 +168,17 @@ export function IncreaseLiquidityTxContextProvider({ children }: PropsWithChildr
161168
hooks: positionInfo.v4hook,
162169
},
163170
},
164-
slippageTolerance: customSlippageTolerance,
171+
slippageTolerance: forceV4ZeroSlippage ? 0 : customSlippageTolerance,
165172
}
166-
}, [account, positionInfo, currencyAmounts, approvalsNeeded, customSlippageTolerance, exactField])
173+
}, [
174+
account,
175+
positionInfo,
176+
currencyAmounts,
177+
approvalsNeeded,
178+
customSlippageTolerance,
179+
exactField,
180+
v4ZeroSlippageEnabled,
181+
])
167182

168183
const currency0Info = useCurrencyInfo(currencyId(positionInfo?.currency0Amount.currency))
169184
const currency1Info = useCurrencyInfo(currencyId(positionInfo?.currency1Amount.currency))

apps/web/src/pages/Pool/Positions/create/ContextProviders.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ProtocolVersion } from '@uniswap/client-pools/dist/pools/v1/types_pb'
12
import { FeeTierSearchModal } from 'components/Liquidity/FeeTierSearchModal'
23
import { useCreatePositionDependentAmountFallback } from 'components/Liquidity/hooks/useDependentAmountFallback'
34
import { DepositState } from 'components/Liquidity/types'
@@ -37,6 +38,8 @@ import { useCheckLpApprovalQuery } from 'uniswap/src/data/apiClients/tradingApi/
3738
import { useCreateLpPositionCalldataQuery } from 'uniswap/src/data/apiClients/tradingApi/useCreateLpPositionCalldataQuery'
3839
import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
3940
import { useTransactionGasFee, useUSDCurrencyAmountOfGasFee } from 'uniswap/src/features/gas/hooks'
41+
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
42+
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
4043
import { getErrorMessageToDisplay, parseErrorMessageTitle } from 'uniswap/src/features/transactions/liquidity/utils'
4144
import { useTransactionSettingsContext } from 'uniswap/src/features/transactions/settings/contexts/TransactionSettingsContext'
4245
import { TransactionStep, TransactionStepType } from 'uniswap/src/features/transactions/swap/types/steps'
@@ -170,6 +173,7 @@ export function CreateTxContextProvider({ children }: { children: React.ReactNod
170173
const { derivedDepositInfo, depositState } = useDepositContext()
171174
const { priceRangeState, derivedPriceRangeInfo } = usePriceRangeContext()
172175
const swapSettings = useTransactionSettingsContext()
176+
const v4ZeroSlippageEnabled = useFeatureFlag(FeatureFlags.V40Slippage)
173177

174178
const hasError = Boolean(derivedDepositInfo.error)
175179
const [hasCreateErrorResponse, setHasCreateErrorResponse] = useState(false)
@@ -215,6 +219,10 @@ export function CreateTxContextProvider({ children }: { children: React.ReactNod
215219
approvalCalldata?.gasFeeToken1Approval,
216220
)
217221

222+
// stopgap measure to prevent overslippage on V4 pools
223+
// TODO: remove this when we can set an upper limit on maxAmounts on protocol level
224+
const forceV4ZeroSlippage = v4ZeroSlippageEnabled && derivedPositionInfo.protocolVersion === ProtocolVersion.V4
225+
218226
const createCalldataQueryParams = useMemo(() => {
219227
return generateCreateCalldataQueryParams({
220228
account,
@@ -225,6 +233,7 @@ export function CreateTxContextProvider({ children }: { children: React.ReactNod
225233
derivedPriceRangeInfo,
226234
derivedDepositInfo,
227235
independentField: depositState.exactField,
236+
slippageTolerance: forceV4ZeroSlippage ? 0 : undefined,
228237
})
229238
}, [
230239
account,
@@ -235,6 +244,7 @@ export function CreateTxContextProvider({ children }: { children: React.ReactNod
235244
positionState,
236245
priceRangeState,
237246
depositState.exactField,
247+
forceV4ZeroSlippage,
238248
])
239249

240250
const isUserCommittedToCreate =

apps/web/src/pages/Pool/Positions/create/utils.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,6 +1004,7 @@ export function generateCreateCalldataQueryParams({
10041004
derivedPriceRangeInfo,
10051005
derivedDepositInfo,
10061006
independentField,
1007+
slippageTolerance,
10071008
}: {
10081009
account?: AccountMeta
10091010
approvalCalldata?: CheckApprovalLPResponse
@@ -1013,6 +1014,7 @@ export function generateCreateCalldataQueryParams({
10131014
derivedPriceRangeInfo: PriceRangeInfo
10141015
derivedDepositInfo: DepositInfo
10151016
independentField: PositionField
1017+
slippageTolerance?: number
10161018
}): CreateLPPositionRequest | undefined {
10171019
const apiProtocolItems = getProtocolItems(positionState.protocolVersion)
10181020
const currencies = derivedPositionInfo.currencies
@@ -1065,6 +1067,7 @@ export function generateCreateCalldataQueryParams({
10651067
independentAmount: independentAmount?.quotient.toString(),
10661068
independentToken,
10671069
defaultDependentAmount: dependentAmount?.quotient.toString(),
1070+
slippageTolerance,
10681071
position: {
10691072
pool: {
10701073
token0: getCurrencyAddressForTradingApi(currencyAmounts[token0Index]?.currency),
@@ -1123,6 +1126,7 @@ export function generateCreateCalldataQueryParams({
11231126
independentToken,
11241127
initialDependentAmount: initialPrice && dependentAmount?.quotient?.toString(), // only set this if there is an initialPrice
11251128
initialPrice,
1129+
slippageTolerance,
11261130
position: {
11271131
tickLower,
11281132
tickUpper,

packages/uniswap/src/features/gating/flags.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export enum FeatureFlags {
6464
UniswapXSyntheticQuote,
6565
UniswapXv2,
6666
UniversalSwap,
67+
V40Slippage,
6768
}
6869
/* eslint-enable @typescript-eslint/prefer-enum-initializers */
6970

@@ -111,6 +112,7 @@ export const WEB_FEATURE_FLAG_NAMES = new Map<FeatureFlags, string>([
111112
[FeatureFlags.UniswapXSyntheticQuote, 'uniswapx_synthetic_quote'],
112113
[FeatureFlags.UniswapXv2, 'uniswapx_v2'],
113114
[FeatureFlags.UniversalSwap, 'universal_swap'],
115+
[FeatureFlags.V40Slippage, 'v4_0_slippage'],
114116
])
115117

116118
// These names must match the gate name on statsig

0 commit comments

Comments
 (0)