mirror of
https://github.com/fluencelabs/fluence-VRF
synced 2025-04-28 08:32:15 +00:00
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
|
import React, {Component} from 'react';
|
||
|
import './App.css';
|
||
|
import * as fluence from 'fluence';
|
||
|
import {FluenceContext} from "./model/withFluence";
|
||
|
import Game from "./component/game/Game";
|
||
|
import MuiThemeProvider from "@material-ui/core/styles/MuiThemeProvider";
|
||
|
import RouletteTheme from "./model/RouletteTheme";
|
||
|
|
||
|
|
||
|
class App extends Component {
|
||
|
|
||
|
constructor(props) {
|
||
|
super(props);
|
||
|
this.state = {
|
||
|
fluence: null,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
componentDidMount() {
|
||
|
// address to Fluence contract in Ethereum blockchain.
|
||
|
// Interaction with blockchain created by MetaMask or with local/remote Ethereum node
|
||
|
let contractAddress = "0xeFF91455de6D4CF57C141bD8bF819E5f873c1A01";
|
||
|
|
||
|
// set ethUrl to `undefined` to use MetaMask instead of Ethereum node
|
||
|
let ethUrl = "http://rinkeby.fluence.one:8545/";
|
||
|
|
||
|
// application to interact with that stored in Fluence contract
|
||
|
let appId = "43";
|
||
|
|
||
|
// create a session between client and backend application
|
||
|
fluence.connect(contractAddress, appId, ethUrl).then((session) => {
|
||
|
console.log("Session created");
|
||
|
this.setState({
|
||
|
fluence: {instance: fluence, session: session}
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
render() {
|
||
|
return (
|
||
|
<MuiThemeProvider theme={RouletteTheme}>
|
||
|
<div className={"App"}>
|
||
|
<FluenceContext.Provider value={this.state.fluence}>
|
||
|
<Game/>
|
||
|
</FluenceContext.Provider>
|
||
|
</div>
|
||
|
</MuiThemeProvider>
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default App;
|