Problem mit Infura-Mainnet-Web3-Verbindung und Abrufen von Informationen

Ich habe mir ein Tutorial von DappUniversity über Web3 angesehen ... im Einführungsvideo habe ich alle Phasen gut abgeschlossen, aber als ich zum Abrufen von Kontostandsinformationen aus dem Mainnet kam (ich habe ein zufälliges Konto aus Etherscan.io ausgewählt). ruft es nicht ab.

Ich bekomme einen Fehler wie diesen, wenn ich den Kontostand alleine betrachte ---|> web3.eth.getBalance(address, (err, bal) => { balance = bal })die Antwort ist 'undefined'und gibt keinen Kontowert in Wei zurück ...

Ich habe versucht, den Balance-Fehler über --|> auszulesenweb3.eth.getBalance(address)

das gibt folgendes zurück: >>>

> web3.eth.getBalance(address)
Promise {
  <pending>,
  domain:
   Domain {
     domain: null,
     _events: { error: [Function: debugDomainError] },
     _eventsCount: 1,
     _maxListeners: undefined,
     members: [] } }
> (node:9060) UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (C:\Users\User\node_modules\web3-core-helpers\src\errors.js:42:16)
    at XMLHttpRequest.request.onreadystatechange (C:\Users\User\node_modules\web3-providers-http\src\index.js:87:32)
    at XMLHttpRequestEventTarget.dispatchEvent (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request-event-target.js:34:22)
    at XMLHttpRequest._setReadyState (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request.js:208:14)
    at XMLHttpRequest._onHttpResponseEnd (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request.js:318:14)
    at IncomingMessage.<anonymous> (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request.js:289:61)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)
(node:9060) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9060) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

was kann ich tun um dieses problem zu lösen!

Antworten (1)

web3.eth.getBalance(address) gibt ein Versprechen zurück, das nur entweder einen Fehler oder den Kontostand zurückgibt, sobald die Transaktion abgebaut ist.

function getBalance(){ var balance; web3.eth.getBalance(address, (err, bal) => { balance = bal }) return balance; }

Der obige Fall gibt undefiniert zurück, da die Funktion den Saldo bereits zurückgegeben hat, bevor bal abgerufen und dem Saldo zugewiesen wurde.

async function getBalance(){ var balance; await web3.eth.getBalance(address, (err, bal) => { balance = bal }) return balance; }

In Bezug auf den Fehler UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: ""Tritt er beim Aufrufen von getBalance() auf? Es kann hilfreich sein, einen detaillierteren Code zu posten, um diesen Fehler besser zu beheben.