I have a reactjs application using web3 where I have a provider set in a context via Web3ReactProvider
<Web3ReactProvider getLibrary={getLibrary}>
<MyCoolApplication />
</Web3ReactProvider>
my users also can switch between the networks, so I'd like to update web3's provider based on a user's choice
so this is what I am doing to have such a functionality:
const getLibrary = useCallback(() => {
let provider = ''
switch (web3Provider.selectedProvider) {
case 'network1':
provider = Web3.givenProvider
break
case 'network2':
provider = 'bla-bla-bla-1'
break
case 'network3':
provider = 'bla-bla-bla-3'
break
default:
provider = Web3.givenProvider
break
}
return new Web3(provider)
}, [web3Provider])
looks like it has to work properly, but when I am trying to get any token's data via web3React.library.eth.Contract, etc.
There is nothing responded at all
Can I update a provider like that or should I do anything else?