Commit 45a0e93d authored by Noah Zinsmeister's avatar Noah Zinsmeister

make web3 connection logic more robust

parent 9796c04d
......@@ -32,8 +32,10 @@ const SpinnerWrapper = styled(Spinner)`
`
function tryToSetConnector(setConnector, setError) {
setConnector('Injected', { suppressAndThrowErrors: true }).catch(error => {
setConnector('Network')
setConnector('Injected', { suppressAndThrowErrors: true }).catch(() => {
setConnector('Network', { suppressAndThrowErrors: true }).catch(error => {
setError(error)
})
})
}
......@@ -54,25 +56,31 @@ export default function Web3ReactManager({ children }) {
if (accounts.length >= 1) {
tryToSetConnector(setConnector, setError)
} else {
setConnector('Network')
setConnector('Network', { suppressAndThrowErrors: true }).catch(error => {
setError(error)
})
}
})
}
} else {
setConnector('Network')
setConnector('Network', { suppressAndThrowErrors: true }).catch(error => {
setError(error)
})
}
}
}, [active, error, setConnector, setError])
})
// parse the error
useEffect(() => {
if (error) {
// if the user changes to the wrong network, unset the connector
if (error.code === Connector.errorCodes.UNSUPPORTED_NETWORK) {
setConnector('Network')
setConnector('Network', { suppressAndThrowErrors: true }).catch(error => {
setError(error)
})
}
}
}, [error, setConnector])
})
const [showLoader, setShowLoader] = useState(false)
useEffect(() => {
......
......@@ -77,7 +77,7 @@ export function Updater() {
useEffect(() => {
if (library) {
if (connectorName === 'Network') {
library.pollingInterval = 15
library.polling = false
} else {
library.pollingInterval = 5
}
......@@ -86,24 +86,26 @@ export function Updater() {
// update usd price
useEffect(() => {
let stale = false
if (library) {
let stale = false
getUSDPrice(library)
.then(([price]) => {
if (!stale) {
updateUSDPrice(networkId, price)
}
})
.catch(() => {
if (!stale) {
updateUSDPrice(networkId, null)
}
})
getUSDPrice(library)
.then(([price]) => {
if (!stale) {
updateUSDPrice(networkId, price)
}
})
.catch(() => {
if (!stale) {
updateUSDPrice(networkId, null)
}
})
}
}, [globalBlockNumber, library, networkId, updateUSDPrice])
// update block number
useEffect(() => {
if ((networkId || networkId === 0) && library) {
if (library) {
let stale = false
function update() {
......
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