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 ms from 'ms.macro'
import { useEffect } from 'react'
import { ApplicationModal, setOpenModal } from 'state/application/reducer'
import { useAppDispatch } from 'state/hooks'
......@@ -8,6 +9,12 @@ export default function useAccountRiskCheck(account: string | null | undefined)
useEffect(() => {
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' })
fetch('https://screening-worker.uniswap.workers.dev', {
method: 'POST',
......@@ -25,9 +32,11 @@ export default function useAccountRiskCheck(account: string | null | undefined)
})
}
})
.catch(() => {
dispatch(setOpenModal(null))
})
.catch(() => dispatch(setOpenModal(null)))
}
} finally {
localStorage.setItem(riskCheckLocalStorageKey, (now + ms`7 days`).toString())
}
}
}, [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