-
Notifications
You must be signed in to change notification settings - Fork 173
Expand file tree
/
Copy pathreward_test.go
More file actions
44 lines (37 loc) · 1.85 KB
/
reward_test.go
File metadata and controls
44 lines (37 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package keeper_test
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/umee-network/umee/v2/x/oracle/types"
)
// Test the reward giving mechanism
func (s *IntegrationTestSuite) TestRewardBallotWinners() {
// Add claim pools
claims := map[string]types.Claim{
valAddr.String(): types.NewClaim(10, 10, 0, valAddr),
valAddr2.String(): types.NewClaim(20, 20, 0, valAddr2),
}
// Prepare reward pool
givingAmt := sdk.NewCoins(sdk.NewInt64Coin(types.UmeeDenom, 30000000))
err := s.app.BankKeeper.MintCoins(s.ctx, "leverage", givingAmt)
s.Require().NoError(err)
err = s.app.BankKeeper.SendCoinsFromModuleToModule(s.ctx, "leverage", "oracle", givingAmt)
s.Require().NoError(err)
var voteTargets []string
params := s.app.OracleKeeper.GetParams(s.ctx)
for _, v := range params.AcceptList {
voteTargets = append(voteTargets, v.SymbolDenom)
}
votePeriodsPerWindow := sdk.NewDec((int64)(s.app.OracleKeeper.RewardDistributionWindow(s.ctx))).
QuoInt64((int64)(s.app.OracleKeeper.VotePeriod(s.ctx))).
TruncateInt64()
s.app.OracleKeeper.RewardBallotWinners(s.ctx, (int64)(s.app.OracleKeeper.VotePeriod(s.ctx)), (int64)(s.app.OracleKeeper.RewardDistributionWindow(s.ctx)), voteTargets, claims)
outstandingRewardsDec := s.app.DistrKeeper.GetValidatorOutstandingRewardsCoins(s.ctx, valAddr)
outstandingRewards, _ := outstandingRewardsDec.TruncateDecimal()
s.Require().Equal(sdk.NewDecFromInt(givingAmt.AmountOf(types.UmeeDenom)).QuoInt64(votePeriodsPerWindow).QuoInt64(3).TruncateInt(),
outstandingRewards.AmountOf(types.UmeeDenom))
}
func (s *IntegrationTestSuite) TestRewardBallotWinnersZeroPower() {
s.app.OracleKeeper.RewardBallotWinners(s.ctx, 0, 0, []string{}, map[string]types.Claim{valAddr.String(): {}})
outstandingRewardsDec := s.app.DistrKeeper.GetValidatorOutstandingRewardsCoins(s.ctx, valAddr)
s.Require().Equal("", outstandingRewardsDec.String())
}