Web3 не подключается

Я создал новый проект с реакцией распаковки трюфелей и, предполагая, что я развернул dapp непосредственно в Rinkeby с Infura, у меня проблема с взаимодействием с web3 в моем app.js

У меня есть файл web3 в моей папке src, вот его содержимое

import Web3 from 'web3';

let web3 = new Promise(function(resolve, reject) {

window.addEventListener('load', function() {
 var results
 var web3 = window.web3

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider)

  results = {
    web3: web3
  }
  console.log(web3);
  console.log('Injected web3 detected.');

  resolve(results)
} else {
  var provider = new Web3.providers.HttpProvider('http://127.0.0.1:9545')

  web3 = new Web3(provider)

  results = {
    web3: web3
  }

  console.log('No web3 instance injected, using Local web3.');

  resolve(results)
  }
 })  
})

 export default web3

Затем я импортирую этот файл в свой app.js

import web3 from './web3';

И я просто вызываю тег абзаца JSX

  <p>  web3.utils.fromWei(this.state.balance, 'ether')  </p>

Ошибка, которую я получаю в журнале консоли, выглядит следующим образом: «Uncaught TypeError: невозможно прочитать свойство fromWei из undefined»

Я работаю в предположении (возможно, неверном), что web3 был загружен, когда я запускал команду реакции трюфеля unbox, поэтому нет необходимости устанавливать его с помощью npm.

Есть идеи, где я ошибаюсь?

Спасибо!


person benjamin852    schedule 23.08.2018    source источник
comment
Попробуйте web3.fromWei   -  person Raghav Sood    schedule 23.08.2018
comment
Ошибка "Не работала" теперь говорит: Uncaught TypeError: _web2.default.fromWei is not a function   -  person benjamin852    schedule 23.08.2018


Ответы (1)


Это асинхронный вызов, который нужно дождаться. await web3.utils.fromWei(this.state.balance, 'ether') должен делать.

person ferit    schedule 30.08.2018