2018-10-09 17:03:20 +02:00
|
|
|
import React from 'react';
|
2018-07-06 18:12:09 -04:00
|
|
|
import 'typeface-roboto'
|
2018-06-12 15:56:41 -04:00
|
|
|
import Toggle from 'react-toggle';
|
2018-05-13 01:31:01 -03:00
|
|
|
import EmbarkJS from 'Embark/EmbarkJS';
|
2018-06-12 18:17:04 -04:00
|
|
|
import TestToken from 'Embark/contracts/TestToken';
|
2018-10-24 11:25:30 -04:00
|
|
|
import { startCase } from 'lodash';
|
2018-09-04 18:49:39 -03:00
|
|
|
import UsernameRegistrar from 'Embark/contracts/UsernameRegistrar';
|
2018-06-04 20:34:56 -04:00
|
|
|
import NameLookup from './components/ens/nameLookup';
|
2018-06-12 18:17:04 -04:00
|
|
|
import AdminMode from './components/AdminMode';
|
2018-06-13 12:58:19 -04:00
|
|
|
import TokenPermissions from './components/standard/TokenPermissionConnect';
|
2018-06-19 15:05:42 -04:00
|
|
|
import web3 from "Embark/web3";
|
2018-07-06 18:12:09 -04:00
|
|
|
import Welcome from './components/ens/welcome';
|
2018-07-11 13:31:33 -04:00
|
|
|
import Hidden from '@material-ui/core/Hidden';
|
2018-08-24 14:13:06 -04:00
|
|
|
import Web3Render from './components/standard/Web3Render';
|
2018-09-04 12:29:05 -04:00
|
|
|
import StatusOptimized from './components/standard/StatusOptimized';
|
2018-10-09 17:03:20 +02:00
|
|
|
import { HashRouter, Route } from "react-router-dom";
|
2018-05-13 01:31:01 -03:00
|
|
|
import './dapp.css';
|
|
|
|
|
2018-06-19 15:05:42 -04:00
|
|
|
const { getNetworkType } = web3.eth.net;
|
|
|
|
const symbols = {
|
|
|
|
'ropsten': 'STT',
|
|
|
|
'private': 'SNT',
|
|
|
|
'main': 'SNT'
|
|
|
|
}
|
|
|
|
|
2018-10-24 11:25:30 -04:00
|
|
|
const isReady = (network, environment) => {
|
|
|
|
if (!network || !environment) return;
|
|
|
|
const formattedNetwork = network.toLowerCase();
|
|
|
|
if (formattedNetwork.includes('main') || formattedNetwork.includes('live')) {
|
|
|
|
if (environment === 'livenet') return true
|
|
|
|
}
|
|
|
|
return formattedNetwork.inclues(environment.toLowerCase());
|
|
|
|
}
|
|
|
|
|
|
|
|
const Web3RenderContent = ({ network, history, match, environment }) => (
|
|
|
|
<Web3Render ready={isReady(network, environment)} network={startCase(environment)}>
|
2018-10-09 17:03:20 +02:00
|
|
|
<div>
|
|
|
|
<NameLookup {...{history, match}}/>
|
|
|
|
<Hidden mdDown>
|
|
|
|
<div style={{textAlign: 'center', margin: '0px 40px'}}>
|
|
|
|
<TokenPermissions
|
|
|
|
symbol={symbols[network] || 'SNT'}
|
|
|
|
spender={UsernameRegistrar._address}
|
|
|
|
methods={TestToken.methods}/>
|
|
|
|
<hr/>
|
|
|
|
<Toggle onChange={() => {
|
|
|
|
this.setState({admin: !admin})
|
|
|
|
}}/>
|
|
|
|
<br/>
|
|
|
|
<span>Admin Mode</span>
|
|
|
|
</div>
|
|
|
|
</Hidden>
|
|
|
|
</div>
|
|
|
|
</Web3Render>
|
|
|
|
);
|
|
|
|
|
2018-05-13 01:31:01 -03:00
|
|
|
class App extends React.Component {
|
|
|
|
constructor(props) {
|
2018-06-12 15:56:41 -04:00
|
|
|
super(props)
|
2018-05-13 01:31:01 -03:00
|
|
|
}
|
2018-10-09 17:03:20 +02:00
|
|
|
state = { admin: false };
|
2018-05-13 01:31:01 -03:00
|
|
|
|
2018-05-22 10:31:27 -04:00
|
|
|
componentDidMount(){
|
2018-09-28 15:12:52 -04:00
|
|
|
EmbarkJS.onReady((err) => {
|
2018-10-24 11:25:30 -04:00
|
|
|
getNetworkType().then(network => {
|
|
|
|
const { environment } = EmbarkJS
|
|
|
|
this.setState({ network, environment })
|
|
|
|
});
|
2018-05-13 01:31:01 -03:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2018-06-12 15:56:41 -04:00
|
|
|
render() {
|
2018-10-24 11:25:30 -04:00
|
|
|
const { admin, network, environment } = this.state;
|
2018-10-09 17:03:20 +02:00
|
|
|
|
2018-05-23 16:57:38 -03:00
|
|
|
return (
|
2018-10-09 18:39:37 +02:00
|
|
|
<HashRouter hashType="noslash">
|
2018-10-09 17:03:20 +02:00
|
|
|
<div>
|
|
|
|
<Hidden mdDown>
|
|
|
|
<StatusOptimized/>
|
|
|
|
</Hidden>
|
|
|
|
<div style={{display: admin ? 'block' : 'none'}}>
|
|
|
|
<AdminMode style={{display: admin ? 'block' : 'none'}}/>
|
2018-07-09 15:07:55 -04:00
|
|
|
</div>
|
2018-10-09 17:03:20 +02:00
|
|
|
|
|
|
|
<Route exact path="/" component={Welcome}/>
|
|
|
|
<Route path="/search" render={({history, match}) => (
|
2018-10-24 11:25:30 -04:00
|
|
|
<Web3RenderContent {...{history, match, network, environment}} />
|
2018-10-09 17:03:20 +02:00
|
|
|
)}/>
|
|
|
|
</div>
|
|
|
|
</HashRouter>
|
2018-06-12 15:56:41 -04:00
|
|
|
);
|
2018-05-13 01:31:01 -03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-06-01 10:25:59 -04:00
|
|
|
export default App;
|