Не удается подключиться ни к одной сети ethereum с помощью ключа API.

Я следил за учебным пособием о том, как подключить web3 к сетям ethereum. Я зарегистрировался в infura.io и получил все URL. Но когда я пытаюсь подключиться к любой сети, она не подключается. Когда я печатаю состояние подключения web3, всегда ложно. Ниже приведен мой код, и я использую 1.0.0-beta.34 web3.

web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/v3/MY_API_KEY'));
web3.eth.net.getNetworkType(function(err, res){
     console.log("Network Type: "+res); //Displaying undefined
});

Я пробовал с основной сетью, ropsten и kovan. Все отображают undefined. Я не знаю, в чем здесь проблема. Все примеры в сети показывают только эти строки. Может ли кто-нибудь помочь мне решить эту проблему? Спасибо.

v3это новая конечная точка? мой адрес infura не v3похож на ваш
позавчера только я зарегистрировался они предоставили только v3. Также я пытался удалить v3, но не работал. Если у вас есть рабочий код, поделитесь им, пожалуйста.
пожалуйста, обратитесь к этому, используя метамаску ethereum.stackexchange.com/questions/28883/…
Моя проблема в том, что я должен подключить его только в узле js
Если ваша цель просто получить тип сети, то мы можем сделать это другим способом
Я могу войти в сеть при использовании Postman и curl. Моя проблема в том, что я должен делать автоматические платежи, которые возможны только в бэкэндах.
Я имею в виду, что согласно документу web3js.readthedocs.io/en/1.0/web3-eth-net.html#getnetworktype это web3.eth.net.getNetworkTypeне на 100% правильно, тогда нам нужно найти другой способ получить правильный.
Я даже не могу подключиться к любому сервису infura, используя web3. Я настроил частный узел для тестирования, он отлично работает.
Ах хорошо! понял вашу проблему.
кажется, что вам не хватает web3-net в ваших зависимостях, пожалуйста, посмотрите мой ответ ниже :)

Ответы (1)

Вы также должны добавить web3-netв свои библиотеки зависимостей, и тогда он будет работать правильно

  "dependencies": {
    "web3": "1.0.0-beta.35",
    "web3-net": "1.0.0-beta.36"
  }

Я запускаю на своем локальном компьютере и распечатываю правильно, как показано ниже.

Network Type: rinkeby

пример исходного кода: https://github.com/hadv/web3-client

const Web3 = require("web3")

web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/5rhaTHgnqnbTEFj1S1Ya'));
web3.eth.net.getNetworkType(function(err, res){
      console.log("Network Type: "+res);
});
не могли бы вы опубликовать свой код в github, я борюсь уже более 4 дней
Я включил это тоже. Мой код const Net = require('web3-net'); net = new Net(Net.givenProvider || ' rinkeby.infura.io/v3/xxxxxxxxx' ); web3 = новый Web3(новый Web3.providers.HttpProvider(' rinkeby.infura.io/v3/xxxxxxxxx' )); web3.eth.net.getNetworkType(function(err, res){ console.log(err); console.log("Тип сети: "+res); //Отображается неопределенное }); Тем не менее это не определено
@ek все еще использует ваш код, но я редактирую, чтобы поместить код в свой ответ; вам нужно обновить package.jsonи запустить npm install, чтобы обновить библиотеку, тогда все будет хорошо
Я разместил код на github, пожалуйста, проверьте его: github.com/hadv/web3-client
Я не знаю, в чем здесь проблема. Спасибо за помощь. Я сдаюсь.