21 lines
981 B
TypeScript
21 lines
981 B
TypeScript
import { BigNumber } from '@ethersproject/bignumber'
|
|
import { L2_CHAIN_IDS } from 'constants/chains'
|
|
import { L2_DEADLINE_FROM_NOW } from 'constants/misc'
|
|
import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
|
import { useMemo } from 'react'
|
|
import { useAppSelector } from 'state/hooks'
|
|
|
|
import useCurrentBlockTimestamp from './useCurrentBlockTimestamp'
|
|
|
|
// combines the block timestamp with the user setting to give the deadline that should be used for any submitted transaction
|
|
export default function useTransactionDeadline(): BigNumber | undefined {
|
|
const { chainId } = useActiveWeb3React()
|
|
const ttl = useAppSelector((state) => state.user.userDeadline)
|
|
const blockTimestamp = useCurrentBlockTimestamp()
|
|
return useMemo(() => {
|
|
if (blockTimestamp && chainId && L2_CHAIN_IDS.includes(chainId)) return blockTimestamp.add(L2_DEADLINE_FROM_NOW)
|
|
if (blockTimestamp && ttl) return blockTimestamp.add(ttl)
|
|
return undefined
|
|
}, [blockTimestamp, chainId, ttl])
|
|
}
|