Commit 4d19122b authored by Jordan Frankfurt's avatar Jordan Frankfurt Committed by GitHub

set 5 min deadline on swaps and hide UI on L2 (#2081)

parent 13d7d2c9
...@@ -10,6 +10,8 @@ import { RowBetween, RowFixed } from '../Row' ...@@ -10,6 +10,8 @@ import { RowBetween, RowFixed } from '../Row'
import { DEFAULT_DEADLINE_FROM_NOW } from 'constants/misc' import { DEFAULT_DEADLINE_FROM_NOW } from 'constants/misc'
import { darken } from 'polished' import { darken } from 'polished'
import { useSetUserSlippageTolerance, useUserSlippageTolerance, useUserTransactionTTL } from 'state/user/hooks' import { useSetUserSlippageTolerance, useUserSlippageTolerance, useUserTransactionTTL } from 'state/user/hooks'
import { L2_CHAIN_IDS } from 'constants/chains'
import { useActiveWeb3React } from 'hooks/web3'
enum SlippageError { enum SlippageError {
InvalidInput = 'InvalidInput', InvalidInput = 'InvalidInput',
...@@ -92,6 +94,7 @@ interface TransactionSettingsProps { ...@@ -92,6 +94,7 @@ interface TransactionSettingsProps {
} }
export default function TransactionSettings({ placeholderSlippage }: TransactionSettingsProps) { export default function TransactionSettings({ placeholderSlippage }: TransactionSettingsProps) {
const { chainId } = useActiveWeb3React()
const theme = useContext(ThemeContext) const theme = useContext(ThemeContext)
const userSlippageTolerance = useUserSlippageTolerance() const userSlippageTolerance = useUserSlippageTolerance()
...@@ -151,6 +154,8 @@ export default function TransactionSettings({ placeholderSlippage }: Transaction ...@@ -151,6 +154,8 @@ export default function TransactionSettings({ placeholderSlippage }: Transaction
} }
} }
const showCustomDeadlineRow = Boolean(chainId && !L2_CHAIN_IDS.includes(chainId))
return ( return (
<AutoColumn gap="md"> <AutoColumn gap="md">
<AutoColumn gap="sm"> <AutoColumn gap="sm">
...@@ -221,37 +226,41 @@ export default function TransactionSettings({ placeholderSlippage }: Transaction ...@@ -221,37 +226,41 @@ export default function TransactionSettings({ placeholderSlippage }: Transaction
) : null} ) : null}
</AutoColumn> </AutoColumn>
<AutoColumn gap="sm"> {showCustomDeadlineRow && (
<RowFixed> <AutoColumn gap="sm">
<TYPE.black fontSize={14} fontWeight={400} color={theme.text2}> <RowFixed>
<Trans>Transaction deadline</Trans> <TYPE.black fontSize={14} fontWeight={400} color={theme.text2}>
</TYPE.black> <Trans>Transaction deadline</Trans>
<QuestionHelper text={t`Your transaction will revert if it is pending for more than this period of time.`} /> </TYPE.black>
</RowFixed> <QuestionHelper
<RowFixed> text={t`Your transaction will revert if it is pending for more than this period of time.`}
<OptionCustom style={{ width: '80px' }} warning={!!deadlineError} tabIndex={-1}>
<Input
placeholder={(DEFAULT_DEADLINE_FROM_NOW / 60).toString()}
value={
deadlineInput.length > 0
? deadlineInput
: deadline === DEFAULT_DEADLINE_FROM_NOW
? ''
: (deadline / 60).toString()
}
onChange={(e) => parseCustomDeadline(e.target.value)}
onBlur={() => {
setDeadlineInput('')
setDeadlineError(false)
}}
color={deadlineError ? 'red' : ''}
/> />
</OptionCustom> </RowFixed>
<TYPE.body style={{ paddingLeft: '8px' }} fontSize={14}> <RowFixed>
<Trans>minutes</Trans> <OptionCustom style={{ width: '80px' }} warning={!!deadlineError} tabIndex={-1}>
</TYPE.body> <Input
</RowFixed> placeholder={(DEFAULT_DEADLINE_FROM_NOW / 60).toString()}
</AutoColumn> value={
deadlineInput.length > 0
? deadlineInput
: deadline === DEFAULT_DEADLINE_FROM_NOW
? ''
: (deadline / 60).toString()
}
onChange={(e) => parseCustomDeadline(e.target.value)}
onBlur={() => {
setDeadlineInput('')
setDeadlineError(false)
}}
color={deadlineError ? 'red' : ''}
/>
</OptionCustom>
<TYPE.body style={{ paddingLeft: '8px' }} fontSize={14}>
<Trans>minutes</Trans>
</TYPE.body>
</RowFixed>
</AutoColumn>
)}
</AutoColumn> </AutoColumn>
) )
} }
import { Percent, Token } from '@uniswap/sdk-core' import { Percent, Token } from '@uniswap/sdk-core'
import { computePairAddress, Pair } from '@uniswap/v2-sdk' import { computePairAddress, Pair } from '@uniswap/v2-sdk'
import { L2_CHAIN_IDS } from 'constants/chains'
import { SupportedLocale } from 'constants/locales' import { SupportedLocale } from 'constants/locales'
import { L2_DEADLINE_FROM_NOW } from 'constants/misc'
import JSBI from 'jsbi' import JSBI from 'jsbi'
import flatMap from 'lodash.flatmap' import flatMap from 'lodash.flatmap'
import { useCallback, useMemo } from 'react' import { useCallback, useMemo } from 'react'
...@@ -182,10 +184,11 @@ export function useUserSlippageToleranceWithDefault(defaultSlippageTolerance: Pe ...@@ -182,10 +184,11 @@ export function useUserSlippageToleranceWithDefault(defaultSlippageTolerance: Pe
} }
export function useUserTransactionTTL(): [number, (slippage: number) => void] { export function useUserTransactionTTL(): [number, (slippage: number) => void] {
const { chainId } = useActiveWeb3React()
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
const userDeadline = useAppSelector((state) => { const userDeadline = useAppSelector((state) => state.user.userDeadline)
return state.user.userDeadline const onL2 = Boolean(chainId && L2_CHAIN_IDS.includes(chainId))
}) const deadline = onL2 ? L2_DEADLINE_FROM_NOW : userDeadline
const setUserDeadline = useCallback( const setUserDeadline = useCallback(
(userDeadline: number) => { (userDeadline: number) => {
...@@ -194,7 +197,7 @@ export function useUserTransactionTTL(): [number, (slippage: number) => void] { ...@@ -194,7 +197,7 @@ export function useUserTransactionTTL(): [number, (slippage: number) => void] {
[dispatch] [dispatch]
) )
return [userDeadline, setUserDeadline] return [deadline, setUserDeadline]
} }
export function useAddUserToken(): (token: Token) => void { export function useAddUserToken(): (token: Token) => void {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment