Fetch the threshold for each ballot (#214)

* load threshold for each ballot

* Fix minThreshold for ballot

Co-authored-by: varasev <33550681+varasev@users.noreply.github.com>
This commit is contained in:
Max Alekseenko 2019-12-30 14:58:01 +03:00 committed by varasev
parent b314def1a9
commit 8248992d46
6 changed files with 30 additions and 25 deletions

View File

@ -59,6 +59,7 @@ export class BallotCard extends React.Component {
@observable memo
@observable quorumState
@observable minBallotDuration
@observable minThreshold
@computed
get cancelOrFinalizeButtonDisplayName() {
@ -302,6 +303,9 @@ export class BallotCard extends React.Component {
this.getHasAlreadyVoted()
}
// minThreshold
this.getMinThreshold()
if (votingType === 'votingToManageEmissionFunds') {
this.getQuorumState()
}
@ -317,6 +321,12 @@ export class BallotCard extends React.Component {
return formattedMs
}
@action('ballot min threshold of voters')
getMinThreshold = async () => {
const { contractsStore, id, votingType } = this.props
this.minThreshold = await this.getContract(contractsStore, votingType).getMinThresholdOfVoters(id)
}
@action('validator has already voted')
getHasAlreadyVoted = async () => {
const { contractsStore, id, votingType } = this.props
@ -610,21 +620,6 @@ export class BallotCard extends React.Component {
}
}
getThreshold(contractsStore, votingType) {
switch (votingType) {
case 'votingToChangeKeys':
return contractsStore.keysBallotThreshold
case 'votingToChangeMinThreshold':
return contractsStore.minThresholdBallotThreshold
case 'votingToChangeProxy':
return contractsStore.proxyBallotThreshold
case 'votingToManageEmissionFunds':
return contractsStore.emissionFundsBallotThreshold
default:
return contractsStore.keysBallotThreshold
}
}
getMinBallotDuration(contractsStore, votingType) {
switch (votingType) {
case 'votingToChangeKeys':
@ -682,10 +677,9 @@ export class BallotCard extends React.Component {
}
render() {
let { contractsStore, votingType, children } = this.props
let { votingType, children } = this.props
let votes
const threshold = this.getThreshold(contractsStore, votingType)
const networkBranch = this.getVotingNetworkBranch()
if (votingType === 'votingToManageEmissionFunds') {
@ -744,12 +738,7 @@ export class BallotCard extends React.Component {
/>
</div>
<Votes networkBranch={networkBranch} votes={votes} />
<BallotInfoContainer
memo={this.memo}
networkBranch={networkBranch}
threshold={threshold}
validatorsLength={contractsStore.validatorsLength}
/>
<BallotInfoContainer memo={this.memo} networkBranch={networkBranch} threshold={this.minThreshold} />
<BallotFooter
buttonState={this.cancelOrFinalizeButtonState}
buttonText={this.cancelOrFinalizeButtonDisplayName}

View File

@ -18,7 +18,7 @@ export class BallotInfoContainer extends React.Component {
}
render() {
let { memo = '', threshold, validatorsLength, networkBranch } = this.props
let { memo = '', threshold, networkBranch } = this.props
let toggleShowMore =
memo.length > MAX_DETAILS_LENGTH ? (
<span
@ -34,7 +34,7 @@ export class BallotInfoContainer extends React.Component {
return (
<div className="bc-BallotInfoContainer">
<div className="bc-BallotInfoContainer_Info bc-BallotInfoContainer_Info-minimum">
Minimum {threshold} from {validatorsLength} validators are required to pass the proposal
Minimum {threshold} validators are required to pass the proposal
</div>
<div
className={`bc-BallotInfoContainer_Info bc-BallotInfoContainer_Info-details ${

View File

@ -62,6 +62,10 @@ export default class VotingToChangeKeys {
return this.instance.methods.votingState(_id).call()
}
getMinThresholdOfVoters(_id) {
return this.instance.methods.getMinThresholdOfVoters(_id).call()
}
hasAlreadyVoted(_id, votingKey) {
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
}

View File

@ -54,6 +54,10 @@ export default class VotingToChangeMinThreshold {
return this.instance.methods.votingState(_id).call()
}
getMinThresholdOfVoters(_id) {
return this.instance.methods.getMinThresholdOfVoters(_id).call()
}
hasAlreadyVoted(_id, votingKey) {
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
}

View File

@ -50,6 +50,10 @@ export default class VotingToChangeProxy {
return this.instance.methods.votingState(_id).call()
}
getMinThresholdOfVoters(_id) {
return this.instance.methods.getMinThresholdOfVoters(_id).call()
}
hasAlreadyVoted(_id, votingKey) {
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
}

View File

@ -69,6 +69,10 @@ export default class VotingToManageEmissionFunds {
return this.instance.methods.getBallotInfo(_id).call()
}
getMinThresholdOfVoters(_id) {
return this.instance.methods.getMinThresholdOfVoters(_id).call()
}
getQuorumState(_id) {
return this.instance.methods.getQuorumState(_id).call()
}