Не удается получить учетную запись metamask

#reactjs #solidity #web3js #metamask

#reactjs #надежность #web3js #metamask

Вопрос:

Раньше я получал адрес учетной записи Metamask, но внезапно я не смог получить учетную запись и получил эту ошибку.

 Uncaught (in promise) Error: No valid "from" address specified in neither the given options, nor the default options.
 

Я указал адрес следующим образом

 const accounts = await web3.eth.getAccounts()
    this.setState({ account: accounts[0] })
 

Ошибка возникает в этом коде

 createPlace(name) {
    this.setState({ loading: true })
    this.state.placeList.methods.createPlace(name).send({ from: this.state.account })
    .once('receipt', (receipt) => {
      this.setState({ loading: false })
    })
  }
 

Есть ли какие-либо проблемы в моем коде?

Не могли бы вы дать мне какой-нибудь совет, пожалуйста?

Комментарии:

1. Честно говоря, ваш код выглядит нормально, я предполагаю, что у вас здесь какая-то фиктивная ошибка, gl

Ответ №1:

В этом случае Метамаска не сможет подключиться к браузеру и внедрить в него web3.

Одним из решений может быть то, что у вас может быть строка в вашем коде, которая проверяет наличие CurrrentProvider ?

Бывший:

 if (typeof window !== 'undefined' amp;amp; typeof window.web3 !== 'undefined') {
  // We are in the browser and metamask is running.
  web3 = new Web3(window.web3.currentProvider);
} 
 

измените строку на

 window.web3.currentProvider.enable()
 

и сохраните файл, продолжая работу сервера.

Это должно сработать для вас.

Еще одна вещь, которую вы можете сделать, это написать свои логические коды внутри блока try и выполнить

 window.web3.currentProvider.enable()