github.com/cosmos/cosmos-sdk@v0.50.10/x/gov/types/v1beta1/tally.go (about) 1 package v1beta1 2 3 import ( 4 "cosmossdk.io/math" 5 6 sdk "github.com/cosmos/cosmos-sdk/types" 7 ) 8 9 // ValidatorGovInfo used for tallying 10 type ValidatorGovInfo struct { 11 Address sdk.ValAddress // address of the validator operator 12 BondedTokens math.Int // Power of a Validator 13 DelegatorShares math.LegacyDec // Total outstanding delegator shares 14 DelegatorDeductions math.LegacyDec // Delegator deductions from validator's delegators voting independently 15 Vote WeightedVoteOptions // Vote of the validator 16 } 17 18 // NewValidatorGovInfo creates a ValidatorGovInfo instance 19 func NewValidatorGovInfo(address sdk.ValAddress, bondedTokens math.Int, delegatorShares, 20 delegatorDeductions math.LegacyDec, options WeightedVoteOptions, 21 ) ValidatorGovInfo { 22 return ValidatorGovInfo{ 23 Address: address, 24 BondedTokens: bondedTokens, 25 DelegatorShares: delegatorShares, 26 DelegatorDeductions: delegatorDeductions, 27 Vote: options, 28 } 29 } 30 31 // NewTallyResult creates a new TallyResult instance 32 func NewTallyResult(yes, abstain, no, noWithVeto math.Int) TallyResult { 33 return TallyResult{ 34 Yes: yes, 35 Abstain: abstain, 36 No: no, 37 NoWithVeto: noWithVeto, 38 } 39 } 40 41 // NewTallyResultFromMap creates a new TallyResult instance from a Option -> Dec map 42 func NewTallyResultFromMap(results map[VoteOption]math.LegacyDec) TallyResult { 43 return NewTallyResult( 44 results[OptionYes].TruncateInt(), 45 results[OptionAbstain].TruncateInt(), 46 results[OptionNo].TruncateInt(), 47 results[OptionNoWithVeto].TruncateInt(), 48 ) 49 } 50 51 // EmptyTallyResult returns an empty TallyResult. 52 func EmptyTallyResult() TallyResult { 53 return NewTallyResult(math.ZeroInt(), math.ZeroInt(), math.ZeroInt(), math.ZeroInt()) 54 } 55 56 // Equals returns if two proposals are equal. 57 func (tr TallyResult) Equals(comp TallyResult) bool { 58 return tr.Yes.Equal(comp.Yes) && 59 tr.Abstain.Equal(comp.Abstain) && 60 tr.No.Equal(comp.No) && 61 tr.NoWithVeto.Equal(comp.NoWithVeto) 62 }