Commit 566da074 authored by Jordan Frankfurt's avatar Jordan Frankfurt Committed by GitHub

feat(risk): cache risk check with ttl (#3965)

parent 31a3840b
import { sendEvent } from 'components/analytics' import { sendEvent } from 'components/analytics'
import ms from 'ms.macro'
import { useEffect } from 'react' import { useEffect } from 'react'
import { ApplicationModal, setOpenModal } from 'state/application/reducer' import { ApplicationModal, setOpenModal } from 'state/application/reducer'
import { useAppDispatch } from 'state/hooks' import { useAppDispatch } from 'state/hooks'
...@@ -8,6 +9,12 @@ export default function useAccountRiskCheck(account: string | null | undefined) ...@@ -8,6 +9,12 @@ export default function useAccountRiskCheck(account: string | null | undefined)
useEffect(() => { useEffect(() => {
if (account) { if (account) {
const riskCheckLocalStorageKey = `risk-check-${account}`
const now = Date.now()
try {
const storedTime = localStorage.getItem(riskCheckLocalStorageKey)
const checkExpirationTime = storedTime ? parseInt(storedTime) : now - 1
if (checkExpirationTime < Date.now()) {
const headers = new Headers({ 'Content-Type': 'application/json' }) const headers = new Headers({ 'Content-Type': 'application/json' })
fetch('https://screening-worker.uniswap.workers.dev', { fetch('https://screening-worker.uniswap.workers.dev', {
method: 'POST', method: 'POST',
...@@ -25,9 +32,11 @@ export default function useAccountRiskCheck(account: string | null | undefined) ...@@ -25,9 +32,11 @@ export default function useAccountRiskCheck(account: string | null | undefined)
}) })
} }
}) })
.catch(() => { .catch(() => dispatch(setOpenModal(null)))
dispatch(setOpenModal(null)) }
}) } finally {
localStorage.setItem(riskCheckLocalStorageKey, (now + ms`7 days`).toString())
}
} }
}, [account, dispatch]) }, [account, dispatch])
} }
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