From d19b2df1c3a84a8fddbf36aaffe2e336d514da4a Mon Sep 17 00:00:00 2001 From: Sunny Aggarwal Date: Thu, 2 Aug 2018 17:53:27 -0700 Subject: [PATCH 1/2] tallyResults added to state --- PENDING.md | 1 + x/gov/endblocker_test.go | 2 ++ x/gov/handler.go | 6 ++-- x/gov/keeper.go | 1 + x/gov/proposals.go | 59 ++++++++++++++++++++++++++++++++-------- x/gov/tally.go | 17 ++++++++---- x/gov/tally_test.go | 38 +++++++++++++++++--------- 7 files changed, 91 insertions(+), 33 deletions(-) diff --git a/PENDING.md b/PENDING.md index fe3fe55b9614..72fe40c1c2bf 100644 --- a/PENDING.md +++ b/PENDING.md @@ -42,6 +42,7 @@ FEATURES * [store] Add transient store * [gov] Add slashing for validators who do not vote on a proposal * [cli] added `gov query-proposals` command to CLI. Can filter by `depositer`, `voter`, and `status` +* [gov] added TallyResult type that gets added stored in Proposal after tallying is finished IMPROVEMENTS * [baseapp] Allow any alphanumeric character in route diff --git a/x/gov/endblocker_test.go b/x/gov/endblocker_test.go index 909272808003..d49d1685aa6d 100644 --- a/x/gov/endblocker_test.go +++ b/x/gov/endblocker_test.go @@ -124,6 +124,7 @@ func TestTickPassedDepositPeriod(t *testing.T) { require.False(t, shouldPopInactiveProposalQueue(ctx, keeper)) require.NotNil(t, keeper.ActiveProposalQueuePeek(ctx)) require.False(t, shouldPopActiveProposalQueue(ctx, keeper)) + } func TestTickPassedVotingPeriod(t *testing.T) { @@ -166,6 +167,7 @@ func TestTickPassedVotingPeriod(t *testing.T) { require.False(t, depositsIterator.Valid()) depositsIterator.Close() require.Equal(t, StatusRejected, keeper.GetProposal(ctx, proposalID).GetStatus()) + require.True(t, TallyResultEqual(keeper.GetProposal(ctx, proposalID).GetTallyResult(), EmptyTallyResult())) } func TestSlashing(t *testing.T) { diff --git a/x/gov/handler.go b/x/gov/handler.go index 747671cbac6c..a9fdfcb3cd57 100644 --- a/x/gov/handler.go +++ b/x/gov/handler.go @@ -111,9 +111,6 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { resTags.AppendTag(tags.ProposalID, proposalIDBytes) } - var passes bool - var nonVotingVals []sdk.AccAddress - // Check if earliest Active Proposal ended voting period yet for shouldPopActiveProposalQueue(ctx, keeper) { activeProposal := keeper.ActiveProposalQueuePop(ctx) @@ -124,7 +121,7 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { continue } - passes, nonVotingVals = tally(ctx, keeper, activeProposal) + passes, tallyResults, nonVotingVals := tally(ctx, keeper, activeProposal) proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(activeProposal.GetProposalID()) var action []byte if passes { @@ -136,6 +133,7 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { activeProposal.SetStatus(StatusRejected) action = tags.ActionProposalRejected } + activeProposal.SetTallyResult(tallyResults) keeper.SetProposal(ctx, activeProposal) for _, valAddr := range nonVotingVals { diff --git a/x/gov/keeper.go b/x/gov/keeper.go index 4f49cac582c6..0034e3d713c1 100644 --- a/x/gov/keeper.go +++ b/x/gov/keeper.go @@ -71,6 +71,7 @@ func (keeper Keeper) NewTextProposal(ctx sdk.Context, title string, description Description: description, ProposalType: proposalType, Status: StatusDepositPeriod, + TallyResult: EmptyTallyResult(), TotalDeposit: sdk.Coins{}, SubmitBlock: ctx.BlockHeight(), VotingStartBlock: -1, // TODO: Make Time diff --git a/x/gov/proposals.go b/x/gov/proposals.go index 4a07342cb49a..f3f214a87581 100644 --- a/x/gov/proposals.go +++ b/x/gov/proposals.go @@ -27,6 +27,9 @@ type Proposal interface { GetStatus() ProposalStatus SetStatus(ProposalStatus) + GetTallyResult() TallyResult + SetTallyResult(TallyResult) + GetSubmitBlock() int64 SetSubmitBlock(int64) @@ -39,17 +42,18 @@ type Proposal interface { // checks if two proposals are equal func ProposalEqual(proposalA Proposal, proposalB Proposal) bool { - if proposalA.GetProposalID() != proposalB.GetProposalID() || - proposalA.GetTitle() != proposalB.GetTitle() || - proposalA.GetDescription() != proposalB.GetDescription() || - proposalA.GetProposalType() != proposalB.GetProposalType() || - proposalA.GetStatus() != proposalB.GetStatus() || - proposalA.GetSubmitBlock() != proposalB.GetSubmitBlock() || - !(proposalA.GetTotalDeposit().IsEqual(proposalB.GetTotalDeposit())) || - proposalA.GetVotingStartBlock() != proposalB.GetVotingStartBlock() { - return false + if proposalA.GetProposalID() == proposalB.GetProposalID() && + proposalA.GetTitle() == proposalB.GetTitle() && + proposalA.GetDescription() == proposalB.GetDescription() && + proposalA.GetProposalType() == proposalB.GetProposalType() && + proposalA.GetStatus() == proposalB.GetStatus() && + TallyResultEqual(proposalA.GetTallyResult(), proposalB.GetTallyResult()) && + proposalA.GetSubmitBlock() == proposalB.GetSubmitBlock() && + proposalA.GetTotalDeposit().IsEqual(proposalB.GetTotalDeposit()) && + proposalA.GetVotingStartBlock() == proposalB.GetVotingStartBlock() { + return true } - return true + return false } //----------------------------------------------------------- @@ -60,7 +64,8 @@ type TextProposal struct { Description string `json:"description"` // Description of the proposal ProposalType ProposalKind `json:"proposal_type"` // Type of proposal. Initial set {PlainTextProposal, SoftwareUpgradeProposal} - Status ProposalStatus `json:"proposal_status"` // Status of the Proposal {Pending, Active, Passed, Rejected} + Status ProposalStatus `json:"proposal_status"` // Status of the Proposal {Pending, Active, Passed, Rejected} + TallyResult TallyResult `json:"tally_result"` // Result of Tallys SubmitBlock int64 `json:"submit_block"` // Height of the block where TxGovSubmitProposal was included TotalDeposit sdk.Coins `json:"total_deposit"` // Current deposit on this proposal. Initial value is set at InitialDeposit @@ -82,6 +87,8 @@ func (tp TextProposal) GetProposalType() ProposalKind { return tp.P func (tp *TextProposal) SetProposalType(proposalType ProposalKind) { tp.ProposalType = proposalType } func (tp TextProposal) GetStatus() ProposalStatus { return tp.Status } func (tp *TextProposal) SetStatus(status ProposalStatus) { tp.Status = status } +func (tp TextProposal) GetTallyResult() TallyResult { return tp.TallyResult } +func (tp *TextProposal) SetTallyResult(tallyResult TallyResult) { tp.TallyResult = tallyResult } func (tp TextProposal) GetSubmitBlock() int64 { return tp.SubmitBlock } func (tp *TextProposal) SetSubmitBlock(submitBlock int64) { tp.SubmitBlock = submitBlock } func (tp TextProposal) GetTotalDeposit() sdk.Coins { return tp.TotalDeposit } @@ -286,3 +293,33 @@ func (status ProposalStatus) Format(s fmt.State, verb rune) { s.Write([]byte(fmt.Sprintf("%v", byte(status)))) } } + +//----------------------------------------------------------- +// Tally Results +type TallyResult struct { + Yes sdk.Rat `json:"yes"` + Abstain sdk.Rat `json:"abstain"` + No sdk.Rat `json:"no"` + NoWithVeto sdk.Rat `json:"no_with_veto"` +} + +// checks if two proposals are equal +func EmptyTallyResult() TallyResult { + return TallyResult{ + Yes: sdk.ZeroRat(), + Abstain: sdk.ZeroRat(), + No: sdk.ZeroRat(), + NoWithVeto: sdk.ZeroRat(), + } +} + +// checks if two proposals are equal +func TallyResultEqual(resultA TallyResult, resultB TallyResult) bool { + if resultA.Yes.Equal(resultB.Yes) && + resultA.Abstain.Equal(resultB.Yes) && + resultA.No.Equal(resultB.No) && + resultA.NoWithVeto.Equal(resultB.Yes) { + return true + } + return false +} diff --git a/x/gov/tally.go b/x/gov/tally.go index 4246b244d21e..f8a341e1ed9d 100644 --- a/x/gov/tally.go +++ b/x/gov/tally.go @@ -13,7 +13,7 @@ type validatorGovInfo struct { Vote VoteOption // Vote of the validator } -func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, nonVoting []sdk.AccAddress) { +func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, tallyResults TallyResult, nonVoting []sdk.AccAddress) { results := make(map[VoteOption]sdk.Rat) results[OptionYes] = sdk.ZeroRat() results[OptionAbstain] = sdk.ZeroRat() @@ -83,18 +83,25 @@ func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, nonV tallyingProcedure := keeper.GetTallyingProcedure(ctx) + tallyResults = TallyResult{ + Yes: results[OptionYes], + Abstain: results[OptionAbstain], + No: results[OptionNo], + NoWithVeto: results[OptionNoWithVeto], + } + // If no one votes, proposal fails if totalVotingPower.Sub(results[OptionAbstain]).Equal(sdk.ZeroRat()) { - return false, nonVoting + return false, tallyResults, nonVoting } // If more than 1/3 of voters veto, proposal fails if results[OptionNoWithVeto].Quo(totalVotingPower).GT(tallyingProcedure.Veto) { - return false, nonVoting + return false, tallyResults, nonVoting } // If more than 1/2 of non-abstaining voters vote Yes, proposal passes if results[OptionYes].Quo(totalVotingPower.Sub(results[OptionAbstain])).GT(tallyingProcedure.Threshold) { - return true, nonVoting + return true, tallyResults, nonVoting } // If more than 1/2 of non-abstaining voters vote No, proposal fails - return false, nonVoting + return false, tallyResults, nonVoting } diff --git a/x/gov/tally_test.go b/x/gov/tally_test.go index ab6d6f00ca54..1af27e89d47e 100644 --- a/x/gov/tally_test.go +++ b/x/gov/tally_test.go @@ -40,9 +40,10 @@ func TestTallyNoOneVotes(t *testing.T) { proposal.SetStatus(StatusVotingPeriod) keeper.SetProposal(ctx, proposal) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) + require.True(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyOnlyValidatorsAllYes(t *testing.T) { @@ -63,9 +64,10 @@ func TestTallyOnlyValidatorsAllYes(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[1], OptionYes) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyOnlyValidators51No(t *testing.T) { @@ -86,7 +88,7 @@ func TestTallyOnlyValidators51No(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[1], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, _, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) } @@ -111,9 +113,10 @@ func TestTallyOnlyValidators51Yes(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyOnlyValidatorsVetoed(t *testing.T) { @@ -136,9 +139,10 @@ func TestTallyOnlyValidatorsVetoed(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionNoWithVeto) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyOnlyValidatorsAbstainPasses(t *testing.T) { @@ -161,9 +165,10 @@ func TestTallyOnlyValidatorsAbstainPasses(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionYes) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyOnlyValidatorsAbstainFails(t *testing.T) { @@ -186,9 +191,10 @@ func TestTallyOnlyValidatorsAbstainFails(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyOnlyValidatorsNonVoter(t *testing.T) { @@ -209,11 +215,12 @@ func TestTallyOnlyValidatorsNonVoter(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionNo) require.Nil(t, err) - passes, nonVoting := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, nonVoting := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) require.Equal(t, 1, len(nonVoting)) require.Equal(t, addrs[0], nonVoting[0]) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyDelgatorOverride(t *testing.T) { @@ -241,9 +248,10 @@ func TestTallyDelgatorOverride(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[3], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyDelgatorInherit(t *testing.T) { @@ -269,10 +277,11 @@ func TestTallyDelgatorInherit(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionYes) require.Nil(t, err) - passes, nonVoting := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, nonVoting := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) require.Equal(t, 0, len(nonVoting)) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyDelgatorMultipleOverride(t *testing.T) { @@ -302,9 +311,10 @@ func TestTallyDelgatorMultipleOverride(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[3], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyDelgatorMultipleInherit(t *testing.T) { @@ -338,9 +348,10 @@ func TestTallyDelgatorMultipleInherit(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } func TestTallyRevokedValidator(t *testing.T) { @@ -371,7 +382,8 @@ func TestTallyRevokedValidator(t *testing.T) { err = keeper.AddVote(ctx, proposalID, addrs[2], OptionNo) require.Nil(t, err) - passes, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) + passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) + require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) } From fe9c6bf7e5dd77bf52c6280f0b24db3e45982d42 Mon Sep 17 00:00:00 2001 From: Sunny Aggarwal Date: Mon, 6 Aug 2018 16:54:23 -0400 Subject: [PATCH 2/2] fixed bug with tallyresult equals --- x/gov/endblocker_test.go | 4 +++- x/gov/proposals.go | 8 ++++---- x/gov/tally_test.go | 24 ++++++++++++------------ 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/x/gov/endblocker_test.go b/x/gov/endblocker_test.go index d49d1685aa6d..9dd241aabda4 100644 --- a/x/gov/endblocker_test.go +++ b/x/gov/endblocker_test.go @@ -167,7 +167,7 @@ func TestTickPassedVotingPeriod(t *testing.T) { require.False(t, depositsIterator.Valid()) depositsIterator.Close() require.Equal(t, StatusRejected, keeper.GetProposal(ctx, proposalID).GetStatus()) - require.True(t, TallyResultEqual(keeper.GetProposal(ctx, proposalID).GetTallyResult(), EmptyTallyResult())) + require.True(t, keeper.GetProposal(ctx, proposalID).GetTallyResult().Equals(EmptyTallyResult())) } func TestSlashing(t *testing.T) { @@ -206,6 +206,8 @@ func TestSlashing(t *testing.T) { EndBlocker(ctx, keeper) + require.False(t, keeper.GetProposal(ctx, proposalID).GetTallyResult().Equals(EmptyTallyResult())) + endTotalPower := keeper.ds.GetValidatorSet().TotalPower(ctx) val0End := keeper.ds.GetValidatorSet().Validator(ctx, addrs[0]).GetPower().Quo(endTotalPower) val1End := keeper.ds.GetValidatorSet().Validator(ctx, addrs[1]).GetPower().Quo(endTotalPower) diff --git a/x/gov/proposals.go b/x/gov/proposals.go index f3f214a87581..01d839b8c8a1 100644 --- a/x/gov/proposals.go +++ b/x/gov/proposals.go @@ -47,7 +47,7 @@ func ProposalEqual(proposalA Proposal, proposalB Proposal) bool { proposalA.GetDescription() == proposalB.GetDescription() && proposalA.GetProposalType() == proposalB.GetProposalType() && proposalA.GetStatus() == proposalB.GetStatus() && - TallyResultEqual(proposalA.GetTallyResult(), proposalB.GetTallyResult()) && + proposalA.GetTallyResult().Equals(proposalB.GetTallyResult()) && proposalA.GetSubmitBlock() == proposalB.GetSubmitBlock() && proposalA.GetTotalDeposit().IsEqual(proposalB.GetTotalDeposit()) && proposalA.GetVotingStartBlock() == proposalB.GetVotingStartBlock() { @@ -314,11 +314,11 @@ func EmptyTallyResult() TallyResult { } // checks if two proposals are equal -func TallyResultEqual(resultA TallyResult, resultB TallyResult) bool { +func (resultA TallyResult) Equals(resultB TallyResult) bool { if resultA.Yes.Equal(resultB.Yes) && - resultA.Abstain.Equal(resultB.Yes) && + resultA.Abstain.Equal(resultB.Abstain) && resultA.No.Equal(resultB.No) && - resultA.NoWithVeto.Equal(resultB.Yes) { + resultA.NoWithVeto.Equal(resultB.NoWithVeto) { return true } return false diff --git a/x/gov/tally_test.go b/x/gov/tally_test.go index 1af27e89d47e..730885266f84 100644 --- a/x/gov/tally_test.go +++ b/x/gov/tally_test.go @@ -43,7 +43,7 @@ func TestTallyNoOneVotes(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) - require.True(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.True(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyOnlyValidatorsAllYes(t *testing.T) { @@ -67,7 +67,7 @@ func TestTallyOnlyValidatorsAllYes(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyOnlyValidators51No(t *testing.T) { @@ -116,7 +116,7 @@ func TestTallyOnlyValidators51Yes(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyOnlyValidatorsVetoed(t *testing.T) { @@ -142,7 +142,7 @@ func TestTallyOnlyValidatorsVetoed(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyOnlyValidatorsAbstainPasses(t *testing.T) { @@ -168,7 +168,7 @@ func TestTallyOnlyValidatorsAbstainPasses(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyOnlyValidatorsAbstainFails(t *testing.T) { @@ -194,7 +194,7 @@ func TestTallyOnlyValidatorsAbstainFails(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyOnlyValidatorsNonVoter(t *testing.T) { @@ -220,7 +220,7 @@ func TestTallyOnlyValidatorsNonVoter(t *testing.T) { require.False(t, passes) require.Equal(t, 1, len(nonVoting)) require.Equal(t, addrs[0], nonVoting[0]) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyDelgatorOverride(t *testing.T) { @@ -251,7 +251,7 @@ func TestTallyDelgatorOverride(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyDelgatorInherit(t *testing.T) { @@ -281,7 +281,7 @@ func TestTallyDelgatorInherit(t *testing.T) { require.True(t, passes) require.Equal(t, 0, len(nonVoting)) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyDelgatorMultipleOverride(t *testing.T) { @@ -314,7 +314,7 @@ func TestTallyDelgatorMultipleOverride(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyDelgatorMultipleInherit(t *testing.T) { @@ -351,7 +351,7 @@ func TestTallyDelgatorMultipleInherit(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.False(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) } func TestTallyRevokedValidator(t *testing.T) { @@ -385,5 +385,5 @@ func TestTallyRevokedValidator(t *testing.T) { passes, tallyResults, _ := tally(ctx, keeper, keeper.GetProposal(ctx, proposalID)) require.True(t, passes) - require.False(t, TallyResultEqual(tallyResults, EmptyTallyResult())) + require.False(t, tallyResults.Equals(EmptyTallyResult())) }