#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()