mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 18:15:19 +00:00
4b8e224f6a
* Revert "Add incentive migrations for earn rewards (#1406)" This reverts commit937e5f339f
. * Revert "Use different accumulator for earn (#1395)" This reverts commitcf009647e6
. * Revert "Add base earn incentive accumulator (#1393)" This reverts commit44a90a8ef9
. * Revert "Add generic incentive `AccumulateRewards` method (#1392)" This reverts commitdce631d3de
. * Revert "Add GetSynchronizedClaim and swap adapter (#1386)" This reverts commitf52a581ea9
. * Revert "Add Initialize/Synchronize Claim methods (#1383)" This reverts commitc2061f626e
. * Revert "Add source adapter interface definition (#1377)" This reverts commit2abb2ce606
. * Revert "Add incentive RewardIndexes types and state methods (#1381)" This reverts commit4a3002b09c
. * Revert "Add AccrualTime type and state methods (#1379)" This reverts commitdf1c2ffc34
. * Revert "Add incentive claim state methods (#1375)" This reverts commit90735e29ed
. * Revert "Add generic Claim type (#1371)" This reverts commit45fc1a7643
. * Regerate protos and minor revert fixes
87 lines
1.8 KiB
Go
87 lines
1.8 KiB
Go
package keeper_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/kava-labs/kava/x/incentive/keeper"
|
|
"github.com/kava-labs/kava/x/incentive/types"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGetProportionalRewardPeriod(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
giveRewardPeriod types.MultiRewardPeriod
|
|
giveTotalBkavaSupply sdk.Int
|
|
giveSingleBkavaSupply sdk.Int
|
|
wantRewardsPerSecond sdk.DecCoins
|
|
}{
|
|
{
|
|
"full amount",
|
|
types.NewMultiRewardPeriod(
|
|
true,
|
|
"",
|
|
time.Time{},
|
|
time.Time{},
|
|
cs(c("ukava", 100), c("hard", 200)),
|
|
),
|
|
i(100),
|
|
i(100),
|
|
toDcs(c("ukava", 100), c("hard", 200)),
|
|
},
|
|
{
|
|
"3/4 amount",
|
|
types.NewMultiRewardPeriod(
|
|
true,
|
|
"",
|
|
time.Time{},
|
|
time.Time{},
|
|
cs(c("ukava", 100), c("hard", 200)),
|
|
),
|
|
i(10_000000),
|
|
i(7_500000),
|
|
toDcs(c("ukava", 75), c("hard", 150)),
|
|
},
|
|
{
|
|
"half amount",
|
|
types.NewMultiRewardPeriod(
|
|
true,
|
|
"",
|
|
time.Time{},
|
|
time.Time{},
|
|
cs(c("ukava", 100), c("hard", 200)),
|
|
),
|
|
i(100),
|
|
i(50),
|
|
toDcs(c("ukava", 50), c("hard", 100)),
|
|
},
|
|
{
|
|
"under 1 unit",
|
|
types.NewMultiRewardPeriod(
|
|
true,
|
|
"",
|
|
time.Time{},
|
|
time.Time{},
|
|
cs(c("ukava", 100), c("hard", 200)),
|
|
),
|
|
i(1000), // total bkava
|
|
i(1), // bkava supply of this specific vault
|
|
dcs(dc("ukava", "0.1"), dc("hard", "0.2")), // rewards per second rounded to 0 if under 1ukava/1hard
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
rewardsPerSecond := keeper.GetProportionalRewardsPerSecond(
|
|
tt.giveRewardPeriod,
|
|
tt.giveTotalBkavaSupply,
|
|
tt.giveSingleBkavaSupply,
|
|
)
|
|
|
|
require.Equal(t, tt.wantRewardsPerSecond, rewardsPerSecond)
|
|
})
|
|
}
|
|
}
|