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
e40445e9
Commit
e40445e9
authored
Jan 23, 2025
by
Uniswap Labs Service Account
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ci(release): publish latest release
parent
f16a99c9
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
98 additions
and
36 deletions
+98
-36
RELEASE
RELEASE
+7
-7
VERSION
VERSION
+1
-1
IncreaseLiquidityContext.tsx
...components/IncreaseLiquidity/IncreaseLiquidityContext.tsx
+11
-1
IncreaseLiquidityReview.tsx
.../components/IncreaseLiquidity/IncreaseLiquidityReview.tsx
+7
-7
IncreaseLiquidityTxContext.tsx
...mponents/IncreaseLiquidity/IncreaseLiquidityTxContext.tsx
+12
-2
RemoveLiquidityModalContext.tsx
...omponents/RemoveLiquidity/RemoveLiquidityModalContext.tsx
+19
-1
RemoveLiquidityReview.tsx
.../src/components/RemoveLiquidity/RemoveLiquidityReview.tsx
+7
-7
hooks.ts
apps/web/src/components/RemoveLiquidity/hooks.ts
+7
-1
ContextProviders.tsx
.../web/src/pages/Pool/Positions/create/ContextProviders.tsx
+13
-1
CreatePositionContext.tsx
...src/pages/Pool/Positions/create/CreatePositionContext.tsx
+2
-0
CreatePositionModal.tsx
...b/src/pages/Pool/Positions/create/CreatePositionModal.tsx
+8
-7
types.ts
apps/web/src/pages/Pool/Positions/create/types.ts
+3
-0
flags.ts
packages/uniswap/src/features/gating/flags.ts
+1
-1
No files found.
RELEASE
View file @
e40445e9
IPFS hash of the deployment:
- CIDv0: `Qm
crR5faskhjW7PVj7g5tA4gAqASyDvySRHAQes9fVCSvJ
`
- CIDv1: `bafybei
gxuoq3myrrht67aku2bu7jqvr6rdfwfp6bycbgu7tbybbktumvz4
`
- CIDv0: `Qm
eVXtPfnqJ2PeigSXgwizJDYf2EmwfVrCE4Qi3dXhAbdL
`
- CIDv1: `bafybei
hqagapczekcmizn4zden7rrz6h4mfhtnd3dc3wa3wnatqc4eu6vm
`
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
...
...
@@ -10,15 +10,15 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.
IPFS gateways:
- https://bafybei
gxuoq3myrrht67aku2bu7jqvr6rdfwfp6bycbgu7tbybbktumvz4
.ipfs.dweb.link/
- https://bafybei
gxuoq3myrrht67aku2bu7jqvr6rdfwfp6bycbgu7tbybbktumvz4
.ipfs.cf-ipfs.com/
- [ipfs://Qm
crR5faskhjW7PVj7g5tA4gAqASyDvySRHAQes9fVCSvJ/](ipfs://QmcrR5faskhjW7PVj7g5tA4gAqASyDvySRHAQes9fVCSvJ
/)
- https://bafybei
hqagapczekcmizn4zden7rrz6h4mfhtnd3dc3wa3wnatqc4eu6vm
.ipfs.dweb.link/
- https://bafybei
hqagapczekcmizn4zden7rrz6h4mfhtnd3dc3wa3wnatqc4eu6vm
.ipfs.cf-ipfs.com/
- [ipfs://Qm
eVXtPfnqJ2PeigSXgwizJDYf2EmwfVrCE4Qi3dXhAbdL/](ipfs://QmeVXtPfnqJ2PeigSXgwizJDYf2EmwfVrCE4Qi3dXhAbdL
/)
### 5.67.
3
(2025-01-23)
### 5.67.
4
(2025-01-23)
### Bug Fixes
* **web:**
lp flow error logging updates (#15424) d7de5d5
* **web:**
Phil/lp polling prod (#15462) 7533563
VERSION
View file @
e40445e9
web/5.67.3
\ No newline at end of file
web/5.67.4
\ No newline at end of file
apps/web/src/components/IncreaseLiquidity/IncreaseLiquidityContext.tsx
View file @
e40445e9
...
...
@@ -4,6 +4,7 @@ import { DepositInfo } from 'components/Liquidity/types'
import
{
Dispatch
,
PropsWithChildren
,
SetStateAction
,
createContext
,
useContext
,
useMemo
,
useState
}
from
'
react
'
import
{
LiquidityModalInitialState
}
from
'
state/application/reducer
'
import
{
PositionField
}
from
'
types/position
'
import
{
TransactionStep
}
from
'
uniswap/src/features/transactions/swap/types/steps
'
export
enum
IncreaseLiquidityStep
{
Input
,
...
...
@@ -35,6 +36,8 @@ interface IncreaseLiquidityContextType {
setIncreaseLiquidityState
:
Dispatch
<
SetStateAction
<
IncreaseLiquidityState
>>
unwrapNativeCurrency
:
boolean
setUnwrapNativeCurrency
:
Dispatch
<
SetStateAction
<
boolean
>>
currentTransactionStep
?:
{
step
:
TransactionStep
;
accepted
:
boolean
}
setCurrentTransactionStep
:
Dispatch
<
SetStateAction
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>>
}
const
IncreaseLiquidityContext
=
createContext
<
IncreaseLiquidityContextType
>
({
...
...
@@ -45,6 +48,8 @@ const IncreaseLiquidityContext = createContext<IncreaseLiquidityContextType>({
setIncreaseLiquidityState
:
()
=>
undefined
,
unwrapNativeCurrency
:
true
,
setUnwrapNativeCurrency
:
()
=>
undefined
,
currentTransactionStep
:
undefined
,
setCurrentTransactionStep
:
()
=>
undefined
,
})
export
function
useIncreaseLiquidityContext
()
{
...
...
@@ -60,6 +65,9 @@ export function IncreaseLiquidityContextProvider({ children }: PropsWithChildren
...
DEFAULT_INCREASE_LIQUIDITY_STATE
,
position
:
positionInfo
,
})
const
[
currentTransactionStep
,
setCurrentTransactionStep
]
=
useState
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>
()
const
derivedIncreaseLiquidityInfo
=
useDerivedIncreaseLiquidityInfo
(
increaseLiquidityState
,
unwrapNativeCurrency
)
...
...
@@ -72,8 +80,10 @@ export function IncreaseLiquidityContextProvider({ children }: PropsWithChildren
derivedIncreaseLiquidityInfo
,
unwrapNativeCurrency
,
setUnwrapNativeCurrency
,
currentTransactionStep
,
setCurrentTransactionStep
,
}),
[
increaseLiquidityState
,
derivedIncreaseLiquidityInfo
,
step
,
unwrapNativeCurrency
],
[
increaseLiquidityState
,
derivedIncreaseLiquidityInfo
,
step
,
unwrapNativeCurrency
,
currentTransactionStep
],
)
return
<
IncreaseLiquidityContext
.
Provider
value=
{
value
}
>
{
children
}
</
IncreaseLiquidityContext
.
Provider
>
...
...
apps/web/src/components/IncreaseLiquidity/IncreaseLiquidityReview.tsx
View file @
e40445e9
...
...
@@ -36,7 +36,8 @@ export function IncreaseLiquidityReview({ onClose }: { onClose: () => void }) {
const
{
formatCurrencyAmount
,
formatPercent
}
=
useLocalizationContext
()
const
{
derivedIncreaseLiquidityInfo
,
increaseLiquidityState
}
=
useIncreaseLiquidityContext
()
const
{
derivedIncreaseLiquidityInfo
,
increaseLiquidityState
,
currentTransactionStep
,
setCurrentTransactionStep
}
=
useIncreaseLiquidityContext
()
const
{
txInfo
,
gasFeeEstimateUSD
}
=
useIncreaseLiquidityTxContext
()
const
{
dependentAmount
}
=
txInfo
||
{}
...
...
@@ -57,7 +58,6 @@ export function IncreaseLiquidityReview({ onClose }: { onClose: () => void }) {
)
const
[
steps
,
setSteps
]
=
useState
<
TransactionStep
[]
>
([])
const
[
currentStep
,
setCurrentStep
]
=
useState
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>
()
if
(
!
increaseLiquidityState
.
position
)
{
throw
new
Error
(
'
a position must be defined
'
)
...
...
@@ -95,12 +95,12 @@ export function IncreaseLiquidityReview({ onClose }: { onClose: () => void }) {
const
newToken1AmountUSD
=
useUSDCValue
(
newToken1Amount
)
const
onFailure
=
()
=>
{
setCurrentStep
(
undefined
)
setCurrent
Transaction
Step
(
undefined
)
}
const
onSuccess
=
()
=>
{
setSteps
([])
setCurrentStep
(
undefined
)
setCurrent
Transaction
Step
(
undefined
)
onClose
()
}
...
...
@@ -123,7 +123,7 @@ export function IncreaseLiquidityReview({ onClose }: { onClose: () => void }) {
startChainId
,
account
,
liquidityTxContext
:
txInfo
,
setCurrentStep
,
setCurrentStep
:
setCurrentTransactionStep
,
setSteps
,
onSuccess
,
onFailure
,
...
...
@@ -156,8 +156,8 @@ export function IncreaseLiquidityReview({ onClose }: { onClose: () => void }) {
</
Text
>
<
TokenInfo
currencyAmount=
{
displayCurrencyAmounts
?.
TOKEN1
}
currencyUSDAmount=
{
displayUSDAmounts
?.
TOKEN1
}
/>
</
Flex
>
{
currentStep
?
(
<
ProgressIndicator
currentStep=
{
currentStep
}
steps=
{
steps
}
/>
{
current
Transaction
Step
?
(
<
ProgressIndicator
currentStep=
{
current
Transaction
Step
}
steps=
{
steps
}
/>
)
:
(
<>
<
Separator
mx=
"$padding16"
/>
...
...
apps/web/src/components/IncreaseLiquidity/IncreaseLiquidityTxContext.tsx
View file @
e40445e9
...
...
@@ -21,6 +21,7 @@ import {
LiquidityTransactionType
,
}
from
'
uniswap/src/features/transactions/liquidity/types
'
import
{
useTransactionSettingsContext
}
from
'
uniswap/src/features/transactions/settings/contexts/TransactionSettingsContext
'
import
{
TransactionStepType
}
from
'
uniswap/src/features/transactions/swap/types/steps
'
import
{
validatePermit
,
validateTransactionRequest
}
from
'
uniswap/src/features/transactions/swap/utils/trade
'
import
{
logger
}
from
'
utilities/src/logger/logger
'
import
{
ONE_SECOND_MS
}
from
'
utilities/src/time/time
'
...
...
@@ -37,7 +38,7 @@ const IncreaseLiquidityTxContext = createContext<IncreasePositionContextType | u
export
function
IncreaseLiquidityTxContextProvider
({
children
}:
PropsWithChildren
):
JSX
.
Element
{
const
positionInfo
=
useModalLiquidityInitialState
()
const
{
derivedIncreaseLiquidityInfo
,
increaseLiquidityState
}
=
useIncreaseLiquidityContext
()
const
{
derivedIncreaseLiquidityInfo
,
increaseLiquidityState
,
currentTransactionStep
}
=
useIncreaseLiquidityContext
()
const
{
customDeadline
,
customSlippageTolerance
}
=
useTransactionSettingsContext
()
const
{
currencyAmounts
,
error
}
=
derivedIncreaseLiquidityInfo
...
...
@@ -154,6 +155,10 @@ export function IncreaseLiquidityTxContextProvider({ children }: PropsWithChildr
}
},
[
account
,
positionInfo
,
currencyAmounts
,
approvalsNeeded
,
customSlippageTolerance
,
exactField
])
const
isUserCommittedToIncrease
=
currentTransactionStep
?.
step
.
type
===
TransactionStepType
.
IncreasePositionTransaction
||
currentTransactionStep
?.
step
.
type
===
TransactionStepType
.
IncreasePositionTransactionAsync
const
{
data
:
increaseCalldata
,
isLoading
:
isCalldataLoading
,
...
...
@@ -163,7 +168,12 @@ export function IncreaseLiquidityTxContextProvider({ children }: PropsWithChildr
params
:
increaseCalldataQueryParams
,
deadlineInMinutes
:
customDeadline
,
refetchInterval
:
5
*
ONE_SECOND_MS
,
enabled
:
!
error
&&
!
approvalLoading
&&
!
approvalError
&&
Boolean
(
increaseCalldataQueryParams
),
enabled
:
!
isUserCommittedToIncrease
&&
!
error
&&
!
approvalLoading
&&
!
approvalError
&&
Boolean
(
increaseCalldataQueryParams
),
})
const
{
increase
,
gasFee
:
actualGasFee
,
dependentAmount
}
=
increaseCalldata
||
{}
...
...
apps/web/src/components/RemoveLiquidity/RemoveLiquidityModalContext.tsx
View file @
e40445e9
import
{
useModalLiquidityInitialState
}
from
'
components/Liquidity/hooks
'
import
{
Dispatch
,
PropsWithChildren
,
SetStateAction
,
createContext
,
useContext
,
useMemo
,
useState
}
from
'
react
'
import
{
LiquidityModalInitialState
}
from
'
state/application/reducer
'
import
{
TransactionStep
}
from
'
uniswap/src/features/transactions/swap/types/steps
'
export
enum
DecreaseLiquidityStep
{
Input
,
...
...
@@ -16,6 +17,8 @@ type RemoveLiquidityModalState = {
percentInvalid
?:
boolean
unwrapNativeCurrency
:
boolean
setUnwrapNativeCurrency
:
Dispatch
<
SetStateAction
<
boolean
>>
currentTransactionStep
?:
{
step
:
TransactionStep
;
accepted
:
boolean
}
setCurrentTransactionStep
:
Dispatch
<
SetStateAction
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>>
}
const
RemoveLiquidityModalContext
=
createContext
<
RemoveLiquidityModalState
>
({
...
...
@@ -26,12 +29,17 @@ const RemoveLiquidityModalContext = createContext<RemoveLiquidityModalState>({
percentInvalid
:
true
,
unwrapNativeCurrency
:
true
,
setUnwrapNativeCurrency
:
()
=>
null
,
currentTransactionStep
:
undefined
,
setCurrentTransactionStep
:
()
=>
null
,
})
export
function
RemoveLiquidityModalContextProvider
({
children
}:
PropsWithChildren
):
JSX
.
Element
{
const
[
step
,
setStep
]
=
useState
(
DecreaseLiquidityStep
.
Input
)
const
[
unwrapNativeCurrency
,
setUnwrapNativeCurrency
]
=
useState
(
true
)
const
[
percent
,
setPercent
]
=
useState
<
string
>
(
''
)
const
[
currentTransactionStep
,
setCurrentTransactionStep
]
=
useState
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>
()
const
positionInfo
=
useModalLiquidityInitialState
()
const
percentInvalid
=
percent
===
'
0
'
||
percent
===
''
||
!
percent
...
...
@@ -45,8 +53,18 @@ export function RemoveLiquidityModalContextProvider({ children }: PropsWithChild
percentInvalid
,
unwrapNativeCurrency
,
setUnwrapNativeCurrency
,
currentTransactionStep
,
setCurrentTransactionStep
,
}),
[
percent
,
step
,
positionInfo
,
percentInvalid
,
unwrapNativeCurrency
,
setUnwrapNativeCurrency
],
[
percent
,
step
,
positionInfo
,
percentInvalid
,
unwrapNativeCurrency
,
setUnwrapNativeCurrency
,
currentTransactionStep
,
],
)
return
<
RemoveLiquidityModalContext
.
Provider
value=
{
ctx
}
>
{
children
}
</
RemoveLiquidityModalContext
.
Provider
>
...
...
apps/web/src/components/RemoveLiquidity/RemoveLiquidityReview.tsx
View file @
e40445e9
...
...
@@ -36,11 +36,11 @@ import { useTrace } from 'utilities/src/telemetry/trace/TraceContext'
export
function
RemoveLiquidityReview
({
onClose
}:
{
onClose
:
()
=>
void
})
{
const
{
t
}
=
useTranslation
()
const
{
percent
,
positionInfo
,
unwrapNativeCurrency
,
currentTransactionStep
,
setCurrentTransactionStep
}
=
useRemoveLiquidityModalContext
()
const
[
steps
,
setSteps
]
=
useState
<
TransactionStep
[]
>
([])
const
{
percent
,
positionInfo
,
unwrapNativeCurrency
}
=
useRemoveLiquidityModalContext
()
const
removeLiquidityTxContext
=
useRemoveLiquidityTxContext
()
const
{
formatCurrencyAmount
,
formatPercent
}
=
useLocalizationContext
()
const
[
currentStep
,
setCurrentStep
]
=
useState
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>
()
const
currency0FiatAmount
=
useUSDCValue
(
positionInfo
?.
currency0Amount
)
??
undefined
const
currency1FiatAmount
=
useUSDCValue
(
positionInfo
?.
currency1Amount
)
??
undefined
const
selectChain
=
useSelectChain
()
...
...
@@ -53,12 +53,12 @@ export function RemoveLiquidityReview({ onClose }: { onClose: () => void }) {
const
onSuccess
=
()
=>
{
setSteps
([])
setCurrentStep
(
undefined
)
setCurrent
Transaction
Step
(
undefined
)
onClose
()
}
const
onFailure
=
()
=>
{
setCurrentStep
(
undefined
)
setCurrent
Transaction
Step
(
undefined
)
}
if
(
!
positionInfo
)
{
...
...
@@ -131,7 +131,7 @@ export function RemoveLiquidityReview({ onClose }: { onClose: () => void }) {
startChainId
,
account
,
liquidityTxContext
:
txContext
,
setCurrentStep
,
setCurrentStep
:
setCurrentTransactionStep
,
setSteps
,
onSuccess
,
onFailure
,
...
...
@@ -203,8 +203,8 @@ export function RemoveLiquidityReview({ onClose }: { onClose: () => void }) {
</
Flex
>
)
}
</
Flex
>
{
currentStep
?
(
<
ProgressIndicator
steps=
{
steps
}
currentStep=
{
currentStep
}
/>
{
current
Transaction
Step
?
(
<
ProgressIndicator
steps=
{
steps
}
currentStep=
{
current
Transaction
Step
}
/>
)
:
(
<>
<
Separator
mx=
"$padding16"
/>
...
...
apps/web/src/components/RemoveLiquidity/hooks.ts
View file @
e40445e9
...
...
@@ -17,11 +17,13 @@ import {
}
from
'
uniswap/src/data/tradingApi/__generated__
'
import
{
useTransactionGasFee
,
useUSDCurrencyAmountOfGasFee
}
from
'
uniswap/src/features/gas/hooks
'
import
{
useTransactionSettingsContext
}
from
'
uniswap/src/features/transactions/settings/contexts/TransactionSettingsContext
'
import
{
TransactionStepType
}
from
'
uniswap/src/features/transactions/swap/types/steps
'
import
{
logger
}
from
'
utilities/src/logger/logger
'
import
{
ONE_SECOND_MS
}
from
'
utilities/src/time/time
'
export
function
useRemoveLiquidityTxAndGasInfo
({
account
}:
{
account
?:
string
}):
RemoveLiquidityTxInfo
{
const
{
positionInfo
,
percent
,
percentInvalid
,
unwrapNativeCurrency
}
=
useRemoveLiquidityModalContext
()
const
{
positionInfo
,
percent
,
percentInvalid
,
unwrapNativeCurrency
,
currentTransactionStep
}
=
useRemoveLiquidityModalContext
()
const
{
customDeadline
,
customSlippageTolerance
}
=
useTransactionSettingsContext
()
const
currency0Info
=
useCurrencyInfoWithUnwrapForTradingApi
({
...
...
@@ -132,6 +134,9 @@ export function useRemoveLiquidityTxAndGasInfo({ account }: { account?: string }
customSlippageTolerance
,
])
const
isUserCommittedToDecrease
=
currentTransactionStep
?.
step
.
type
===
TransactionStepType
.
DecreasePositionTransaction
const
{
data
:
decreaseCalldata
,
isLoading
:
decreaseCalldataLoading
,
...
...
@@ -142,6 +147,7 @@ export function useRemoveLiquidityTxAndGasInfo({ account }: { account?: string }
deadlineInMinutes
:
customDeadline
,
refetchInterval
:
5
*
ONE_SECOND_MS
,
enabled
:
!
isUserCommittedToDecrease
&&
!!
decreaseCalldataQueryParams
&&
((
!
percentInvalid
&&
!
v2LpTokenApprovalQueryParams
)
||
(
!
v2ApprovalLoading
&&
!
approvalError
&&
Boolean
(
v2LpTokenApproval
))),
...
...
apps/web/src/pages/Pool/Positions/create/ContextProviders.tsx
View file @
e40445e9
...
...
@@ -37,6 +37,7 @@ import { useCheckLpApprovalQuery } from 'uniswap/src/data/apiClients/tradingApi/
import
{
useCreateLpPositionCalldataQuery
}
from
'
uniswap/src/data/apiClients/tradingApi/useCreateLpPositionCalldataQuery
'
import
{
useTransactionGasFee
,
useUSDCurrencyAmountOfGasFee
}
from
'
uniswap/src/features/gas/hooks
'
import
{
useTransactionSettingsContext
}
from
'
uniswap/src/features/transactions/settings/contexts/TransactionSettingsContext
'
import
{
TransactionStep
,
TransactionStepType
}
from
'
uniswap/src/features/transactions/swap/types/steps
'
import
{
logger
}
from
'
utilities/src/logger/logger
'
import
{
ONE_SECOND_MS
}
from
'
utilities/src/time/time
'
...
...
@@ -49,6 +50,9 @@ export function CreatePositionContextProvider({
})
{
const
[
positionState
,
setPositionState
]
=
useState
<
PositionState
>
({
...
DEFAULT_POSITION_STATE
,
...
initialState
})
const
[
step
,
setStep
]
=
useState
<
PositionFlowStep
>
(
PositionFlowStep
.
SELECT_TOKENS_AND_FEE_TIER
)
const
[
currentTransactionStep
,
setCurrentTransactionStep
]
=
useState
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>
()
const
derivedPositionInfo
=
useDerivedPositionInfo
(
positionState
)
const
[
feeTierSearchModalOpen
,
setFeeTierSearchModalOpen
]
=
useState
(
false
)
const
[
dynamicFeeTierSpeedbumpData
,
setDynamicFeeTierSpeedbumpData
]
=
useState
<
DynamicFeeTierSpeedbumpData
>
({
...
...
@@ -74,6 +78,8 @@ export function CreatePositionContextProvider({
setPositionState
,
derivedPositionInfo
,
feeTierSearchModalOpen
,
currentTransactionStep
,
setCurrentTransactionStep
,
setFeeTierSearchModalOpen
,
dynamicFeeTierSpeedbumpData
,
setDynamicFeeTierSpeedbumpData
,
...
...
@@ -146,7 +152,7 @@ export function DepositContextProvider({ children }: { children: React.ReactNode
export
function
CreateTxContextProvider
({
children
}:
{
children
:
React
.
ReactNode
})
{
const
account
=
useAccountMeta
()
const
{
derivedPositionInfo
,
positionState
}
=
useCreatePositionContext
()
const
{
derivedPositionInfo
,
positionState
,
currentTransactionStep
}
=
useCreatePositionContext
()
const
{
derivedDepositInfo
,
depositState
}
=
useDepositContext
()
const
{
priceRangeState
,
derivedPriceRangeInfo
}
=
usePriceRangeContext
()
const
swapSettings
=
useTransactionSettingsContext
()
...
...
@@ -214,6 +220,11 @@ export function CreateTxContextProvider({ children }: { children: React.ReactNod
priceRangeState
,
depositState
.
exactField
,
])
const
isUserCommittedToCreate
=
currentTransactionStep
?.
step
.
type
===
TransactionStepType
.
IncreasePositionTransaction
||
currentTransactionStep
?.
step
.
type
===
TransactionStepType
.
IncreasePositionTransactionAsync
const
{
data
:
createCalldata
,
error
:
createError
,
...
...
@@ -223,6 +234,7 @@ export function CreateTxContextProvider({ children }: { children: React.ReactNod
deadlineInMinutes
:
swapSettings
.
customDeadline
,
refetchInterval
:
5
*
ONE_SECOND_MS
,
enabled
:
!
isUserCommittedToCreate
&&
!
hasError
&&
!
approvalLoading
&&
!
approvalError
&&
...
...
apps/web/src/pages/Pool/Positions/create/CreatePositionContext.tsx
View file @
e40445e9
...
...
@@ -32,6 +32,8 @@ export const CreatePositionContext = React.createContext<CreatePositionContextTy
wishFeeData
:
DEFAULT_POSITION_STATE
.
fee
,
},
setDynamicFeeTierSpeedbumpData
:
()
=>
undefined
,
currentTransactionStep
:
undefined
,
setCurrentTransactionStep
:
()
=>
undefined
,
})
export
const
useCreatePositionContext
=
()
=>
{
...
...
apps/web/src/pages/Pool/Positions/create/CreatePositionModal.tsx
View file @
e40445e9
...
...
@@ -50,6 +50,8 @@ export function CreatePositionModal({ isOpen, onClose }: { isOpen: boolean; onCl
const
{
positionState
:
{
fee
,
hook
},
derivedPositionInfo
,
currentTransactionStep
,
setCurrentTransactionStep
,
}
=
useCreatePositionContext
()
const
{
derivedPriceRangeInfo
,
...
...
@@ -75,7 +77,6 @@ export function CreatePositionModal({ isOpen, onClose }: { isOpen: boolean; onCl
const
versionLabel
=
getProtocolVersionLabel
(
protocolVersion
)
const
[
steps
,
setSteps
]
=
useState
<
TransactionStep
[]
>
([])
const
[
currentStep
,
setCurrentStep
]
=
useState
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>
()
const
dispatch
=
useDispatch
()
const
{
txInfo
,
gasFeeEstimateUSD
,
error
,
refetch
}
=
useCreateTxContext
()
const
account
=
useAccountMeta
()
...
...
@@ -85,12 +86,12 @@ export function CreatePositionModal({ isOpen, onClose }: { isOpen: boolean; onCl
const
trace
=
useTrace
()
const
onFailure
=
()
=>
{
setCurrentStep
(
undefined
)
setCurrent
Transaction
Step
(
undefined
)
}
const
onSuccess
=
useCallback
(()
=>
{
setSteps
([])
setCurrentStep
(
undefined
)
setCurrent
Transaction
Step
(
undefined
)
onClose
()
navigate
(
'
/positions
'
)
},
[
onClose
,
navigate
])
...
...
@@ -122,7 +123,7 @@ export function CreatePositionModal({ isOpen, onClose }: { isOpen: boolean; onCl
startChainId
,
account
,
liquidityTxContext
:
txInfo
,
setCurrentStep
,
setCurrentStep
:
setCurrentTransactionStep
,
setSteps
,
onSuccess
,
onFailure
,
...
...
@@ -299,8 +300,8 @@ export function CreatePositionModal({ isOpen, onClose }: { isOpen: boolean; onCl
{
error
&&
<
TradingAPIError
refetch=
{
refetch
}
/>
}
<
PoolOutOfSyncError
/>
</
Flex
>
{
currentStep
&&
steps
.
length
>
1
?
(
<
ProgressIndicator
steps=
{
steps
}
currentStep=
{
currentStep
}
/>
{
current
Transaction
Step
&&
steps
.
length
>
1
?
(
<
ProgressIndicator
steps=
{
steps
}
currentStep=
{
current
Transaction
Step
}
/>
)
:
(
<>
<
Separator
mx=
"$padding12"
/>
...
...
@@ -327,7 +328,7 @@ export function CreatePositionModal({ isOpen, onClose }: { isOpen: boolean; onCl
}
}
/>
</
Flex
>
{
currentStep
?
(
{
current
Transaction
Step
?
(
<
LoaderButton
disabled=
{
true
}
loading=
{
true
}
buttonKey=
"create-position-confirm"
>
<
Text
variant=
"buttonLabel1"
color=
"$white"
>
<
Trans
i18nKey=
"common.confirmWallet"
/>
...
...
apps/web/src/pages/Pool/Positions/create/types.ts
View file @
e40445e9
...
...
@@ -6,6 +6,7 @@ import { FeeAmount, TICK_SPACINGS, Pool as V3Pool } from '@uniswap/v3-sdk'
import
{
Pool
as
V4Pool
}
from
'
@uniswap/v4-sdk
'
import
{
Dispatch
,
SetStateAction
}
from
'
react
'
import
{
PositionField
}
from
'
types/position
'
import
{
TransactionStep
}
from
'
uniswap/src/features/transactions/swap/types/steps
'
export
type
FeeData
=
{
feeAmount
:
number
...
...
@@ -87,6 +88,8 @@ export type CreatePositionContextType = {
setFeeTierSearchModalOpen
:
Dispatch
<
SetStateAction
<
boolean
>>
dynamicFeeTierSpeedbumpData
:
DynamicFeeTierSpeedbumpData
setDynamicFeeTierSpeedbumpData
:
Dispatch
<
SetStateAction
<
DynamicFeeTierSpeedbumpData
>>
currentTransactionStep
?:
{
step
:
TransactionStep
;
accepted
:
boolean
}
setCurrentTransactionStep
:
Dispatch
<
SetStateAction
<
{
step
:
TransactionStep
;
accepted
:
boolean
}
|
undefined
>>
}
export
interface
PriceRangeState
{
...
...
packages/uniswap/src/features/gating/flags.ts
View file @
e40445e9
...
...
@@ -78,6 +78,7 @@ export const SHARED_FEATURE_FLAG_NAMES = new Map<FeatureFlags, string>([
[
FeatureFlags
.
PortionFields
,
'
portion-fields
'
],
[
FeatureFlags
.
SharedSwapArbitrumUniswapXExperiment
,
'
shared_swap_arbitrum_uniswapx_experiment
'
],
[
FeatureFlags
.
TokenSelectorTrendingTokens
,
'
token_selector_trending_tokens
'
],
[
FeatureFlags
.
TwoSecondSwapQuotePollingInterval
,
'
two_second_swap_quote_polling_interval
'
],
[
FeatureFlags
.
Unichain
,
'
unichain
'
],
[
FeatureFlags
.
UnichainPromo
,
'
unichain_promo
'
],
[
FeatureFlags
.
UniswapX
,
'
uniswapx
'
],
...
...
@@ -101,7 +102,6 @@ export const WEB_FEATURE_FLAG_NAMES = new Map<FeatureFlags, string>([
[
FeatureFlags
.
LimitsFees
,
'
limits_fees
'
],
[
FeatureFlags
.
MultipleRoutingOptions
,
'
multiple_routing_options
'
],
[
FeatureFlags
.
NavigationHotkeys
,
'
navigation_hotkeys
'
],
[
FeatureFlags
.
TwoSecondSwapQuotePollingInterval
,
'
two_second_swap_quote_polling_interval
'
],
// TODO(WEB-3625): Remove these once we have a generalized system for outage banners.
[
FeatureFlags
.
OutageBannerArbitrum
,
'
outage_banner_feb_2024_arbitrum
'
],
[
FeatureFlags
.
OutageBannerOptimism
,
'
outage_banner_feb_2024_optimism
'
],
...
...
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