Это слишком запутанно для меня. Я пробовал все.
Если я запускаю код в node.js с помощью браузера... все работает нормально.
Нет, я хочу запустить его на своем веб-сервере. Как заявляет MetaMask, он больше не будет внедрять глобальный объект web3. Итак, я загружаю web3.js здесь и добавляю его в html-файл с помощью: Ok. Теперь я делаю:
window.addEventListener('load', function () {
if (typeof Web3 !== 'undefined') {
window.web3 = new Web3(window.web3.currentProvider);
console.log('Found web3!');
console.log('Your Account: '+ web3.eth.accounts[0]);
startApp();
} else {
console.log("No web3!");
getWeb3();
}
});
Но это дает мне
Невозможно прочитать свойство «currentProvider» неопределенного
Хорошо, я тогда попробовал:
if (typeof Web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
возвращает:
web3 не определен
Я также пробовал разные вещи, такие как:
if (typeof Web3 !== 'undefined') {
var web3 = new Web3(window.web3.currentProvider);
Ну, что бы я ни пытался, я терплю неудачу. Я неправильно понял концепцию?
Как я могу разместить веб-сайт и подключиться к провайдеру MetaMask?
Ладно, думаю, я сам разобрался.
https://github.com/MetaMask/faq/blob/master/DEVELOPERS.md
указано в первом абзаце
Http(s) — требуется веб-сервер Из-за ограничений безопасности браузера мы не можем обмениваться данными с dapps, работающими на file://. Пожалуйста, используйте локальный сервер для разработки.
Ничего. Но, может быть, это поможет кому-то еще.
kn1g