|
@ -56,9 +56,9 @@ type VoteSet struct { |
|
|
height int64 |
|
|
height int64 |
|
|
round int |
|
|
round int |
|
|
type_ byte |
|
|
type_ byte |
|
|
|
|
|
valSet *ValidatorSet |
|
|
|
|
|
|
|
|
mtx sync.Mutex |
|
|
mtx sync.Mutex |
|
|
valSet *ValidatorSet |
|
|
|
|
|
votesBitArray *cmn.BitArray |
|
|
votesBitArray *cmn.BitArray |
|
|
votes []*Vote // Primary votes to share
|
|
|
votes []*Vote // Primary votes to share
|
|
|
sum int64 // Sum of voting power for seen votes, discounting conflicts
|
|
|
sum int64 // Sum of voting power for seen votes, discounting conflicts
|
|
@ -399,6 +399,8 @@ func (voteSet *VoteSet) HasTwoThirdsAny() bool { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func (voteSet *VoteSet) HasAll() bool { |
|
|
func (voteSet *VoteSet) HasAll() bool { |
|
|
|
|
|
voteSet.mtx.Lock() |
|
|
|
|
|
defer voteSet.mtx.Unlock() |
|
|
return voteSet.sum == voteSet.valSet.TotalVotingPower() |
|
|
return voteSet.sum == voteSet.valSet.TotalVotingPower() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -424,6 +426,8 @@ func (voteSet *VoteSet) String() string { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func (voteSet *VoteSet) StringIndented(indent string) string { |
|
|
func (voteSet *VoteSet) StringIndented(indent string) string { |
|
|
|
|
|
voteSet.mtx.Lock() |
|
|
|
|
|
defer voteSet.mtx.Unlock() |
|
|
voteStrings := make([]string, len(voteSet.votes)) |
|
|
voteStrings := make([]string, len(voteSet.votes)) |
|
|
for i, vote := range voteSet.votes { |
|
|
for i, vote := range voteSet.votes { |
|
|
if vote == nil { |
|
|
if vote == nil { |
|
@ -448,6 +452,8 @@ func (voteSet *VoteSet) StringIndented(indent string) string { |
|
|
// Marshal the VoteSet to JSON. Same as String(), just in JSON,
|
|
|
// Marshal the VoteSet to JSON. Same as String(), just in JSON,
|
|
|
// and without the height/round/type_ (since its already included in the votes).
|
|
|
// and without the height/round/type_ (since its already included in the votes).
|
|
|
func (voteSet *VoteSet) MarshalJSON() ([]byte, error) { |
|
|
func (voteSet *VoteSet) MarshalJSON() ([]byte, error) { |
|
|
|
|
|
voteSet.mtx.Lock() |
|
|
|
|
|
defer voteSet.mtx.Unlock() |
|
|
voteStrings := make([]string, len(voteSet.votes)) |
|
|
voteStrings := make([]string, len(voteSet.votes)) |
|
|
for i, vote := range voteSet.votes { |
|
|
for i, vote := range voteSet.votes { |
|
|
if vote == nil { |
|
|
if vote == nil { |
|
|