Я просматривал учебник от DappUniversity о Web3 ... во вступительном видео я успешно завершил все этапы, но когда я добрался до получения информации о балансе учетной записи из основной сети (я выбрал случайную учетную запись из Etherscan.io), это не извлекает его.
Я получаю подобную ошибку, когда смотрю на баланс сам по себе ---|> web3.eth.getBalance(address, (err, bal) => { balance = bal })
ответ есть 'undefined'
и не возвращает значение учетной записи в Wei...
Я пытался прочитать ошибку баланса через --|>web3.eth.getBalance(address)
> 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.
что я могу сделать, чтобы решить эту проблему!
web3.eth.getBalance(address) возвращает обещание, которое либо вернет ошибку, либо баланс только после завершения транзакции.
function getBalance(){ var balance; web3.eth.getBalance(address, (err, bal) => { balance = bal }) return balance; }
в приведенном выше случае будет возвращено значение undefined, поскольку функция уже вернула баланс до того, как баланс был получен и присвоен балансу.
async function getBalance(){ var balance; await web3.eth.getBalance(address, (err, bal) => { balance = bal }) return balance; }
Что касается ошибки. UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: ""
Возникает ли она при вызове getBalance()? Возможно, было бы полезно опубликовать более подробный код, чтобы лучше устранить эту ошибку.