Creation ballots of all types
This commit is contained in:
parent
c7ebedd1a8
commit
d084e9dec2
|
@ -11,7 +11,6 @@ import { inject, observer } from 'mobx-react';
|
|||
class App extends Component {
|
||||
render() {
|
||||
const { commonStore } = this.props;
|
||||
console.log(commonStore.loading)
|
||||
const loading = commonStore.loading ? <Loading /> : ''
|
||||
return (
|
||||
<div>
|
||||
|
|
|
@ -13,7 +13,7 @@ export class BallotKeysMetadata extends React.Component {
|
|||
<div className="form-el">
|
||||
<label for="key">Affected Key</label>
|
||||
<input type="text" id="key"
|
||||
value={ballotStore.affectedKey}
|
||||
value={ballotStore.ballotKeys.affectedKey}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "affectedKey", "ballotKeys")}
|
||||
/>
|
||||
<p className="hint">
|
||||
|
@ -25,7 +25,7 @@ export class BallotKeysMetadata extends React.Component {
|
|||
<div className="form-el">
|
||||
<label for="key">Mining Key</label>
|
||||
<input type="text" id="key"
|
||||
value={ballotStore.miningKey}
|
||||
value={ballotStore.ballotKeys.miningKey}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "miningKey", "ballotKeys")}
|
||||
/>
|
||||
<p className="hint">
|
||||
|
@ -37,7 +37,7 @@ export class BallotKeysMetadata extends React.Component {
|
|||
<div className="form-el">
|
||||
<label for="memo">Memo</label>
|
||||
<input type="text" id="memo"
|
||||
value={ballotStore.memo}
|
||||
value={ballotStore.ballotKeys.memo}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "memo", "ballotKeys")}
|
||||
/>
|
||||
<p className="hint">
|
||||
|
|
|
@ -13,8 +13,8 @@ export class BallotMinThresholdMetadata extends React.Component {
|
|||
<div className="form-el">
|
||||
<label for="key">Proposed Value</label>
|
||||
<input type="number" id="key"
|
||||
value={ballotStore.affectedKey}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "proposedValue")}
|
||||
value={ballotStore.ballotMinThreshold.proposedValue}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "proposedValue", "ballotMinThreshold")}
|
||||
/>
|
||||
<p className="hint">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import React from 'react';
|
||||
import { inject, observer } from "mobx-react";
|
||||
import Select from 'react-select';
|
||||
|
||||
@inject("ballotStore")
|
||||
@observer
|
||||
|
@ -13,8 +14,8 @@ export class BallotProxyMetadata extends React.Component {
|
|||
<div className="form-el">
|
||||
<label for="key">Proposed Address</label>
|
||||
<input type="text" id="key"
|
||||
value={ballotStore.affectedKey}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "proposedAddress")}
|
||||
value={ballotStore.ballotProxy.proposedAddress}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "proposedAddress", "ballotProxy")}
|
||||
/>
|
||||
<p className="hint">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
|
@ -22,6 +23,27 @@ export class BallotProxyMetadata extends React.Component {
|
|||
</div>
|
||||
</div>
|
||||
<div className="right">
|
||||
<div className="form-el">
|
||||
<label for="us-state">Contract Type</label>
|
||||
<Select id="us-state"
|
||||
value={ballotStore.ballotProxy.contractType}
|
||||
onChange={e => ballotStore.changeBallotMetadata(e, "contractType", "ballotProxy")}
|
||||
options={[
|
||||
{ value: '', label: '' },
|
||||
{ value: '1', label: 'KeysManager' },
|
||||
{ value: '2', label: 'VotingToChangeKeys' },
|
||||
{ value: '3', label: 'VotingToChangeMinThreshold' },
|
||||
{ value: '4', label: 'VotingToChangeProxy' },
|
||||
{ value: '5', label: 'BallotsStorage' },
|
||||
]}
|
||||
>
|
||||
</Select>
|
||||
<p className="hint">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="left">
|
||||
<div className="form-el">
|
||||
<label for="key">Ballot End</label>
|
||||
<input type="date" id="key"
|
||||
|
|
|
@ -80,31 +80,90 @@ export class NewBallot extends React.Component {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
let isAddress = contractsStore.web3Instance.isAddress(ballotStore.ballotProxy.proposedAddress);
|
||||
|
||||
if (!isAddress) {
|
||||
swal("Warning!", `Ballot proposedAddress isn't address`, "warning");
|
||||
commonStore.hideLoading();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
onClick() {
|
||||
createBallotForKeys = () => {
|
||||
const { ballotStore, contractsStore } = this.props;
|
||||
const curDate = new Date();
|
||||
const curDateInSeconds = moment(curDate).unix();
|
||||
const inputToMethod = [
|
||||
curDateInSeconds,
|
||||
ballotStore.endTimeUnix,
|
||||
ballotStore.ballotKeys.affectedKey,
|
||||
ballotStore.ballotKeys.keyType,
|
||||
ballotStore.ballotKeys.miningKey,
|
||||
ballotStore.ballotType
|
||||
];
|
||||
console.log(inputToMethod)
|
||||
let method = contractsStore.votingToChangeKeys.votingToChangeKeysInstance.methods.createVotingForKeys(
|
||||
...inputToMethod
|
||||
).send({from: contractsStore.votingKey});
|
||||
return method;
|
||||
}
|
||||
|
||||
createBallotForMinThreshold = () => {
|
||||
const { ballotStore, contractsStore } = this.props;
|
||||
const curDate = new Date();
|
||||
const curDateInSeconds = moment(curDate).unix();
|
||||
const inputToMethod = [
|
||||
curDateInSeconds,
|
||||
ballotStore.endTimeUnix,
|
||||
ballotStore.ballotMinThreshold.proposedValue,
|
||||
];
|
||||
console.log(inputToMethod)
|
||||
let method = contractsStore.votingToChangeMinThreshold.votingToChangeMinThresholdInstance.methods.createBallotToChangeThreshold(
|
||||
...inputToMethod
|
||||
).send({from: contractsStore.votingKey});
|
||||
return method;
|
||||
}
|
||||
|
||||
createBallotForProxy = () => {
|
||||
const { ballotStore, contractsStore } = this.props;
|
||||
const curDate = new Date();
|
||||
const curDateInSeconds = moment(curDate).unix();
|
||||
const inputToMethod = [
|
||||
curDateInSeconds,
|
||||
ballotStore.endTimeUnix,
|
||||
ballotStore.ballotProxy.proposedAddress,
|
||||
ballotStore.ballotProxy.contractType,
|
||||
];
|
||||
console.log(inputToMethod)
|
||||
console.log(contractsStore.votingToChangeProxy)
|
||||
let method = contractsStore.votingToChangeProxy.votingToChangeProxyInstance.methods.createBallotToChangeProxyAddress(
|
||||
...inputToMethod
|
||||
).send({from: contractsStore.votingKey})
|
||||
return method;
|
||||
}
|
||||
|
||||
onClick = async () => {
|
||||
const { commonStore, contractsStore, ballotStore } = this.props;
|
||||
commonStore.showLoading();
|
||||
const isFormValid = this.checkValidation();
|
||||
if (isFormValid) {
|
||||
const curDate = new Date();
|
||||
const curDateInSeconds = moment(curDate).unix();
|
||||
const inputToMethod = [
|
||||
curDateInSeconds,
|
||||
ballotStore.endTimeUnix,
|
||||
ballotStore.ballotKeys.affectedKey,
|
||||
ballotStore.ballotKeys.keyType,
|
||||
ballotStore.ballotKeys.miningKey,
|
||||
ballotStore.ballotType
|
||||
];
|
||||
console.log(inputToMethod)
|
||||
contractsStore.votingToChangeKeys.votingToChangeKeysInstance.methods.createVotingForKeys(
|
||||
...inputToMethod
|
||||
)
|
||||
.send({from: contractsStore.votingKey})
|
||||
let methodToCreateBallot;
|
||||
switch (ballotStore.ballotType) {
|
||||
case ballotStore.BallotType.keys:
|
||||
methodToCreateBallot = this.createBallotForKeys;
|
||||
break;
|
||||
case ballotStore.BallotType.minThreshold:
|
||||
methodToCreateBallot = this.createBallotForMinThreshold;
|
||||
break;
|
||||
case ballotStore.BallotType.proxy:
|
||||
methodToCreateBallot = this.createBallotForProxy;
|
||||
break;
|
||||
}
|
||||
methodToCreateBallot()
|
||||
.on("error", (e) => {
|
||||
commonStore.hideLoading();
|
||||
swal("Error!", e.message, "error");
|
||||
|
|
|
@ -42,8 +42,56 @@ export class Validator extends React.Component {
|
|||
onChange={e => validatorStore.changeValidatorMetadata(e, "state")}
|
||||
options={[
|
||||
{ value: '', label: '' },
|
||||
{ value: 'Alabama', label: 'Alabama' },
|
||||
{ value: 'Florida', label: 'Florida' },
|
||||
{ value: "Alabama", label: "Alabama" },
|
||||
{ value: "Alaska", label: "Alaska" },
|
||||
{ value: "Arizona", label: "Arizona" },
|
||||
{ value: "Arkanzas", label: "Arkanzas" },
|
||||
{ value: "California", label: "California" },
|
||||
{ value: "Colorado", label: "Colorado" },
|
||||
{ value: "Connecticut", label: "Connecticut" },
|
||||
{ value: "Delaware", label: "Delaware" },
|
||||
{ value: "Florida", label: "Florida" },
|
||||
{ value: "Georgia", label: "Georgia" },
|
||||
{ value: "Hawaii", label: "Hawaii" },
|
||||
{ value: "Idaho", label: "Idaho" },
|
||||
{ value: "Illinois", label: "Illinois" },
|
||||
{ value: "Indiana", label: "Indiana" },
|
||||
{ value: "Iowa", label: "Iowa" },
|
||||
{ value: "Kansas", label: "Kansas" },
|
||||
{ value: "Kentucky", label: "Kentucky" },
|
||||
{ value: "Louisianna", label: "Louisianna" },
|
||||
{ value: "Maine", label: "Maine" },
|
||||
{ value: "Maryland", label: "Maryland" },
|
||||
{ value: "Massachusetts", label: "Massachusetts" },
|
||||
{ value: "Michigan", label: "Michigan" },
|
||||
{ value: "Minnesota", label: "Minnesota" },
|
||||
{ value: "Mississippi", label: "Mississippi" },
|
||||
{ value: "Missouri", label: "Missouri" },
|
||||
{ value: "Montana", label: "Montana" },
|
||||
{ value: "Nebraska", label: "Nebraska" },
|
||||
{ value: "Nevada", label: "Nevada" },
|
||||
{ value: "New Hampshire", label: "New Hampshire" },
|
||||
{ value: "New Jersey", label: "New Jersey" },
|
||||
{ value: "New Mexico", label: "New Mexico" },
|
||||
{ value: "New York", label: "New York" },
|
||||
{ value: "North Carolina", label: "North Carolina" },
|
||||
{ value: "North Dakota", label: "North Dakota" },
|
||||
{ value: "Ohio", label: "Ohio" },
|
||||
{ value: "Oklahoma", label: "Oklahoma" },
|
||||
{ value: "Oregon", label: "Oregon" },
|
||||
{ value: "Pennsylvania", label: "Pennsylvania" },
|
||||
{ value: "Rhode Island", label: "Rhode Island" },
|
||||
{ value: "South California", label: "South California" },
|
||||
{ value: "South Dakota", label: "South Dakota" },
|
||||
{ value: "Tennessee", label: "Tennessee" },
|
||||
{ value: "Texas", label: "Texas" },
|
||||
{ value: "Utah", label: "Utah" },
|
||||
{ value: "Vermont", label: "Vermont" },
|
||||
{ value: "Virginia", label: "Virginia" },
|
||||
{ value: "Washington", label: "Washington" },
|
||||
{ value: "West Virginia", label: "West Virginia" },
|
||||
{ value: "Wisconsin", label: "Wisconsin" },
|
||||
{ value: "Wyomi", label: "Wyomi" }
|
||||
]}
|
||||
>
|
||||
</Select>
|
||||
|
|
|
@ -7,19 +7,19 @@ export default class VotingToChangeProxy {
|
|||
constructor(){
|
||||
if(window.web3.currentProvider){
|
||||
let web3_10 = new Web3(window.web3.currentProvider);
|
||||
this.votingToChangeKeysInstance = new web3_10.eth.Contract(votingToChangeProxyABI, VOTING_TO_CHANGE_PROXY);
|
||||
this.votingToChangeProxyInstance = new web3_10.eth.Contract(votingToChangeProxyABI, VOTING_TO_CHANGE_PROXY);
|
||||
}
|
||||
}
|
||||
|
||||
createBallotToChangeProxyAddress({startTime, endTime, proposedValue, sender}){
|
||||
return this.votingToChangeKeysInstance.methods.createVotingForKeys(startTime, endTime, proposedValue).send({from: sender})
|
||||
createBallotToChangeProxyAddress({startTime, endTime, proposedValue, contractType, sender}){
|
||||
return this.votingToChangeProxyInstance.methods.createBallotToChangeProxyAddress(startTime, endTime, proposedValue, contractType).send({from: sender})
|
||||
}
|
||||
|
||||
vote({id, choice, sender}){
|
||||
return this.votingToChangeKeysInstance.methods.vote(id, choice).send({from: sender})
|
||||
return this.votingToChangeProxyInstance.methods.vote(id, choice).send({from: sender})
|
||||
}
|
||||
|
||||
finalize({id, sender}){
|
||||
return this.votingToChangeKeysInstance.methods.finalize(id, id).send({from: sender})
|
||||
return this.votingToChangeProxyInstance.methods.finalize(id, id).send({from: sender})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@ class BallotStore {
|
|||
};
|
||||
|
||||
this.ballotProxy = {
|
||||
proposedAddress: ""
|
||||
proposedAddress: "",
|
||||
contractType: ""
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -113,11 +114,12 @@ class BallotStore {
|
|||
|
||||
@action("change ballot metadata")
|
||||
changeBallotMetadata = (e, field, parent) => {
|
||||
let newVal = e?(e.target?e.target.value:e.value):"";
|
||||
if (parent)
|
||||
this[parent][field] = e.target.value;
|
||||
this[parent][field] = newVal;
|
||||
else
|
||||
this[field] = e.target.value;
|
||||
console.log("ballot metadata", field, this[field])
|
||||
this[field] = newVal;
|
||||
console.log("ballot metadata", field, parent?this[parent][field]:this[field])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ class ValidatorStore {
|
|||
|
||||
@action("change validator metadata")
|
||||
changeValidatorMetadata = (e, field) => {
|
||||
this[field] = e?(e.target?e.target.value:e.label):"";
|
||||
this[field] = e?(e.target?e.target.value:e.value):"";
|
||||
console.log("validator metadata", field, this[field])
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue