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:
parent
b314def1a9
commit
8248992d46
|
@ -59,6 +59,7 @@ export class BallotCard extends React.Component {
|
||||||
@observable memo
|
@observable memo
|
||||||
@observable quorumState
|
@observable quorumState
|
||||||
@observable minBallotDuration
|
@observable minBallotDuration
|
||||||
|
@observable minThreshold
|
||||||
|
|
||||||
@computed
|
@computed
|
||||||
get cancelOrFinalizeButtonDisplayName() {
|
get cancelOrFinalizeButtonDisplayName() {
|
||||||
|
@ -302,6 +303,9 @@ export class BallotCard extends React.Component {
|
||||||
this.getHasAlreadyVoted()
|
this.getHasAlreadyVoted()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// minThreshold
|
||||||
|
this.getMinThreshold()
|
||||||
|
|
||||||
if (votingType === 'votingToManageEmissionFunds') {
|
if (votingType === 'votingToManageEmissionFunds') {
|
||||||
this.getQuorumState()
|
this.getQuorumState()
|
||||||
}
|
}
|
||||||
|
@ -317,6 +321,12 @@ export class BallotCard extends React.Component {
|
||||||
return formattedMs
|
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')
|
@action('validator has already voted')
|
||||||
getHasAlreadyVoted = async () => {
|
getHasAlreadyVoted = async () => {
|
||||||
const { contractsStore, id, votingType } = this.props
|
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) {
|
getMinBallotDuration(contractsStore, votingType) {
|
||||||
switch (votingType) {
|
switch (votingType) {
|
||||||
case 'votingToChangeKeys':
|
case 'votingToChangeKeys':
|
||||||
|
@ -682,10 +677,9 @@ export class BallotCard extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let { contractsStore, votingType, children } = this.props
|
let { votingType, children } = this.props
|
||||||
let votes
|
let votes
|
||||||
|
|
||||||
const threshold = this.getThreshold(contractsStore, votingType)
|
|
||||||
const networkBranch = this.getVotingNetworkBranch()
|
const networkBranch = this.getVotingNetworkBranch()
|
||||||
|
|
||||||
if (votingType === 'votingToManageEmissionFunds') {
|
if (votingType === 'votingToManageEmissionFunds') {
|
||||||
|
@ -744,12 +738,7 @@ export class BallotCard extends React.Component {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<Votes networkBranch={networkBranch} votes={votes} />
|
<Votes networkBranch={networkBranch} votes={votes} />
|
||||||
<BallotInfoContainer
|
<BallotInfoContainer memo={this.memo} networkBranch={networkBranch} threshold={this.minThreshold} />
|
||||||
memo={this.memo}
|
|
||||||
networkBranch={networkBranch}
|
|
||||||
threshold={threshold}
|
|
||||||
validatorsLength={contractsStore.validatorsLength}
|
|
||||||
/>
|
|
||||||
<BallotFooter
|
<BallotFooter
|
||||||
buttonState={this.cancelOrFinalizeButtonState}
|
buttonState={this.cancelOrFinalizeButtonState}
|
||||||
buttonText={this.cancelOrFinalizeButtonDisplayName}
|
buttonText={this.cancelOrFinalizeButtonDisplayName}
|
||||||
|
|
|
@ -18,7 +18,7 @@ export class BallotInfoContainer extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let { memo = '', threshold, validatorsLength, networkBranch } = this.props
|
let { memo = '', threshold, networkBranch } = this.props
|
||||||
let toggleShowMore =
|
let toggleShowMore =
|
||||||
memo.length > MAX_DETAILS_LENGTH ? (
|
memo.length > MAX_DETAILS_LENGTH ? (
|
||||||
<span
|
<span
|
||||||
|
@ -34,7 +34,7 @@ export class BallotInfoContainer extends React.Component {
|
||||||
return (
|
return (
|
||||||
<div className="bc-BallotInfoContainer">
|
<div className="bc-BallotInfoContainer">
|
||||||
<div className="bc-BallotInfoContainer_Info bc-BallotInfoContainer_Info-minimum">
|
<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>
|
||||||
<div
|
<div
|
||||||
className={`bc-BallotInfoContainer_Info bc-BallotInfoContainer_Info-details ${
|
className={`bc-BallotInfoContainer_Info bc-BallotInfoContainer_Info-details ${
|
||||||
|
|
|
@ -62,6 +62,10 @@ export default class VotingToChangeKeys {
|
||||||
return this.instance.methods.votingState(_id).call()
|
return this.instance.methods.votingState(_id).call()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMinThresholdOfVoters(_id) {
|
||||||
|
return this.instance.methods.getMinThresholdOfVoters(_id).call()
|
||||||
|
}
|
||||||
|
|
||||||
hasAlreadyVoted(_id, votingKey) {
|
hasAlreadyVoted(_id, votingKey) {
|
||||||
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
|
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,6 +54,10 @@ export default class VotingToChangeMinThreshold {
|
||||||
return this.instance.methods.votingState(_id).call()
|
return this.instance.methods.votingState(_id).call()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMinThresholdOfVoters(_id) {
|
||||||
|
return this.instance.methods.getMinThresholdOfVoters(_id).call()
|
||||||
|
}
|
||||||
|
|
||||||
hasAlreadyVoted(_id, votingKey) {
|
hasAlreadyVoted(_id, votingKey) {
|
||||||
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
|
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,10 @@ export default class VotingToChangeProxy {
|
||||||
return this.instance.methods.votingState(_id).call()
|
return this.instance.methods.votingState(_id).call()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMinThresholdOfVoters(_id) {
|
||||||
|
return this.instance.methods.getMinThresholdOfVoters(_id).call()
|
||||||
|
}
|
||||||
|
|
||||||
hasAlreadyVoted(_id, votingKey) {
|
hasAlreadyVoted(_id, votingKey) {
|
||||||
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
|
return this.instance.methods.hasAlreadyVoted(_id, votingKey).call()
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,6 +69,10 @@ export default class VotingToManageEmissionFunds {
|
||||||
return this.instance.methods.getBallotInfo(_id).call()
|
return this.instance.methods.getBallotInfo(_id).call()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMinThresholdOfVoters(_id) {
|
||||||
|
return this.instance.methods.getMinThresholdOfVoters(_id).call()
|
||||||
|
}
|
||||||
|
|
||||||
getQuorumState(_id) {
|
getQuorumState(_id) {
|
||||||
return this.instance.methods.getQuorumState(_id).call()
|
return this.instance.methods.getQuorumState(_id).call()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue