1 import React, { Component } from "react";
2 import '../styles/App.css';
3 import { Switch, Route, withRouter } from 'react-router-dom';
4 import Profit from './layout/profit'
5 import Saving from './layout/save'
6 import Footer from './layout/footer'
7 import Header from './layout/header'
8 import Account from './layout/account'
9 import Constants from './layout/constants'
10 import action from './action'
11 import bytomWrap from './layout/bytomWrap'
12 import {connect} from "react-redux";
14 import GetContractArgs from "./constants";
15 import Bytom from 'bytom-js-sdk'
17 class App extends Component {
19 const { bytom, setBytom } = this.props;
21 document.addEventListener('chromeBytomLoaded', bytomExtension => {
22 const bytom = window.bytom;
23 this.bytomLoaded(bytom);
27 this.bytomLoaded(bytom);
31 async bytomLoaded (bytom){
32 let bytomPollInterval = 3 * 1000;
34 solonet: 'http://app.bycoin.io:3000/',
35 testnet: 'http://app.bycoin.io:3020/',
36 mainnet: 'https://api.bycoin.im:8000/'
40 const BYTOM_ACCOUNT = await bytom.enable()
42 const bytomAPI = new Bytom(networks, '')
43 bytomAPI.setNetType(bytom.net)
45 global.bytomAPI = bytomAPI
47 this.props.updateConnection(true)
49 // Check to see if the user has signed in/out of their
50 // bytom wallet or switched accounts
51 let accountInterval = setInterval(function () {
52 if (BYTOM_ACCOUNT.accountId !== bytom.default_account.accountId) {
53 location.reload(true);
55 }, bytomPollInterval);
66 <section className="portfolio" id="portfolio">
67 <div className="container">
79 <Route exact path='/' component={bytomWrap(Saving)}/>
80 <Route exact path='/profit' component={bytomWrap(Profit)}/>
81 <Route exact path='/account' component={bytomWrap(Account)}/>
86 const mapStateToProps = state => ({
90 const mapDispatchToProps = dispatch => ({
91 setBytom: (bytom) => dispatch(action.setBytom(bytom)),
92 updateConnection: (bytomConnection) => dispatch(action.updateConnection(bytomConnection)),
95 export default withRouter(connect(mapStateToProps, mapDispatchToProps)(App))