Commit 81bc6926 authored by Noah Zinsmeister's avatar Noah Zinsmeister Committed by GitHub

Merge pull request #422 from NoahZinsmeister/beta

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