1

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?

TylerH
  • 20,799
  • 66
  • 75
  • 101
user3189117
  • 35
  • 1
  • 4

0 Answers0