Merge branch '000-snt-voting-dapp' of https://github.com/status-im/contracts into 000-snt-voting-dapp

This commit is contained in:
Richard Ramos 2018-06-27 09:36:09 -04:00
commit 27d0162b32
1 changed files with 50 additions and 3 deletions

View File

@ -5,9 +5,27 @@ import CardContent from '@material-ui/core/CardContent';
import PollManager from 'Embark/contracts/PollManager';
import TextField from '@material-ui/core/TextField';
import Button from '@material-ui/core/Button';
import { map } from 'lodash';
import rlp from 'rlp';
import { withStyles } from '@material-ui/core/styles';
import { withFormik } from 'formik';
const oneDayinBlocks = 5760;
const singleChoiceDef = (question, options) => {
const d = [
new Buffer(question),
map(options, function(o) {
return new Buffer(o);
})
];
const b = rlp.encode(d);
const rlpDefinition = '0x' + b.toString('hex');
return rlpDefinition;
}
const styles = theme => ({
button: {
margin: theme.spacing.unit,
@ -25,6 +43,12 @@ const styles = theme => ({
form: {
display: 'flex',
flexDirection: 'column'
},
textFieldInput: {
fontSize: '16px'
},
textFieldFormLabel: {
fontSize: 18,
}
});
@ -43,13 +67,21 @@ const InnerForm = ({
<form onSubmit={handleSubmit} className={classes.form}>
<TextField
id="description"
label="description"
label="Enter your proposal description"
className={classes.textField}
value={values.description}
onChange={handleChange}
margin="normal"
fullWidth
error={errors.description}
InputProps={{
classes: {
input: classes.textFieldInput
},
}}
InputLabelProps={{
className: classes.textFieldFormLabel
}}
/>
<Button type="submit" variant="extendedFab" aria-label="add" className={classes.button}>Submit</Button>
</form>
@ -64,8 +96,23 @@ const AddPoll = withFormik({
const errors = {};
return errors;
},
handleSubmit(values) {
async handleSubmit(values, { setSubmitting }) {
const { description } = values;
const { eth: { getBlockNumber }, utils: { asciiToHex } } = window.web3;
const { addPoll } = PollManager.methods;
const currentBlock = await getBlockNumber();
const endTime = currentBlock + (oneDayinBlocks * 90);
addPoll(
endTime,
singleChoiceDef(description, ['YES', 'NO'])
)
.send()
.then(res => {
console.log('sucess:', res);
})
.catch(res => {
console.log('fail:', res);
})
}
})(StyledForm)