import getWeb3 from './utils/web3'; import DeviceManager from './DeviceManager'; import React, { Component } from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; import './App.css'; import Home from './components/Home'; import RegisterDevice from './components/RegisterDevice'; import ManageDevices from './components/ManageDevices'; import EditEntity from './components/EditEntity'; import LookupEntity from './components/LookupEntity'; import ManageDevice from './components/ManageDevice'; import LookupDevice from './components/LookupDevice'; import CheckSignature from './components/CheckSignature'; import { Layout, Menu, Icon, Tag, Alert, Spin } from 'antd'; const { SubMenu } = Menu; const { Header, Content, Footer, Sider } = Layout; class App extends Component { constructor(props) { super(props); this.state = { web3: null, deviceManagerInstance: null, errorMessage: '', loading: true } } async componentWillMount() { getWeb3.then(results => { this.setState({ web3: results.web3, }); console.log(`Using address: ${this.state.web3.eth.accounts[0]}`); return DeviceManager.then(instance => { this.setState({ loading: false, deviceManagerInstance: instance }); console.log(`Contract address: ${instance.address}`); }).catch(error => { console.log(error); this.setState({ errorMessage: error.message, loading: false }); }); }).catch(() => { let errorMessage = 'Error finding web3. Please install MetaMask.'; console.log(errorMessage); this.setState({ errorMessage: errorMessage, loading: false }); }); } mainContent() { if (!this.state.loading) { let childComponent; if (this.state.web3 == null || this.state.deviceManagerInstance == null) { childComponent =