43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import React, { useMemo, ReactNode } from 'react'
|
|
import ReactDOM from 'react-dom'
|
|
import useActiveWeb3React from './hooks/useActiveWeb3React'
|
|
import { BLOCKED_ADDRESSES } from './config/constants'
|
|
import ApplicationUpdater from './state/application/updater'
|
|
import ListsUpdater from './state/lists/updater'
|
|
import MulticallUpdater from './state/multicall/updater'
|
|
import TransactionUpdater from './state/transactions/updater'
|
|
import App from './App'
|
|
import Providers from './Providers'
|
|
|
|
function Updaters() {
|
|
return (
|
|
<>
|
|
<ListsUpdater />
|
|
<ApplicationUpdater />
|
|
<TransactionUpdater />
|
|
<MulticallUpdater />
|
|
</>
|
|
)
|
|
}
|
|
|
|
function Blocklist({ children }: { children: ReactNode }) {
|
|
const { account } = useActiveWeb3React()
|
|
const blocked: boolean = useMemo(() => Boolean(account && BLOCKED_ADDRESSES.indexOf(account) !== -1), [account])
|
|
if (blocked) {
|
|
return <div>Blocked address</div>
|
|
}
|
|
return <>{children}</>
|
|
}
|
|
|
|
ReactDOM.render(
|
|
<React.StrictMode>
|
|
<Blocklist>
|
|
<Providers>
|
|
<Updaters />
|
|
<App />
|
|
</Providers>
|
|
</Blocklist>
|
|
</React.StrictMode>,
|
|
document.getElementById('root'),
|
|
)
|