mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-29 09:45:18 +00:00
3375484f79
* Use cosmossdk.io/errors for deprecated error methods * Update error registration with cosmossdk.io/errors * Use cosmossdk.io/math for deprecated sdk.Int alias * Fix modified proto file * Update sdk.Int usage in swap hooks * Update e2e test deprecated method usage
561 lines
16 KiB
Go
561 lines
16 KiB
Go
package v0_16
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"path/filepath"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/stretchr/testify/suite"
|
|
|
|
app "github.com/kava-labs/kava/app"
|
|
v015incentive "github.com/kava-labs/kava/x/incentive/legacy/v0_15"
|
|
v016incentive "github.com/kava-labs/kava/x/incentive/types"
|
|
)
|
|
|
|
type migrateTestSuite struct {
|
|
suite.Suite
|
|
|
|
addresses []sdk.AccAddress
|
|
cdc codec.Codec
|
|
legacyCdc *codec.LegacyAmino
|
|
}
|
|
|
|
func (s *migrateTestSuite) SetupTest() {
|
|
app.SetSDKConfig()
|
|
|
|
config := app.MakeEncodingConfig()
|
|
s.cdc = config.Marshaler
|
|
|
|
legacyCodec := codec.NewLegacyAmino()
|
|
s.legacyCdc = legacyCodec
|
|
|
|
_, accAddresses := app.GeneratePrivKeyAddressPairs(10)
|
|
s.addresses = accAddresses
|
|
}
|
|
|
|
func (s *migrateTestSuite) TestMigrate_JSON() {
|
|
file := filepath.Join("testdata", "v15-incentive.json")
|
|
data, err := ioutil.ReadFile(file)
|
|
s.Require().NoError(err)
|
|
var v15genstate v015incentive.GenesisState
|
|
err = s.legacyCdc.UnmarshalJSON(data, &v15genstate)
|
|
s.Require().NoError(err)
|
|
genstate := Migrate(v15genstate)
|
|
actual := s.cdc.MustMarshalJSON(genstate)
|
|
|
|
file = filepath.Join("testdata", "v16-incentive.json")
|
|
expected, err := ioutil.ReadFile(file)
|
|
s.Require().NoError(err)
|
|
s.Require().JSONEq(string(expected), string(actual))
|
|
}
|
|
|
|
func (s *migrateTestSuite) TestMigrate_GenState() {
|
|
v15genstate := v015incentive.GenesisState{
|
|
Params: v015incentive.Params{
|
|
ClaimEnd: time.Date(2020, time.March, 1, 2, 0, 0, 0, time.UTC),
|
|
USDXMintingRewardPeriods: []v015incentive.RewardPeriod{
|
|
{
|
|
Active: true,
|
|
CollateralType: "usdx",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoin("usdx", sdkmath.NewInt(10)),
|
|
},
|
|
},
|
|
HardSupplyRewardPeriods: v015incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "usdx",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
HardBorrowRewardPeriods: v015incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "bnb",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("bnb", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
DelegatorRewardPeriods: v015incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "bnb",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("bnb", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
SwapRewardPeriods: v015incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "bnb",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("bnb", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
ClaimMultipliers: v015incentive.MultipliersPerDenom{
|
|
{
|
|
Denom: "usdx",
|
|
Multipliers: v015incentive.Multipliers{
|
|
{
|
|
Name: v015incentive.Small,
|
|
MonthsLockup: 6,
|
|
Factor: sdk.MustNewDecFromStr("0.5"),
|
|
},
|
|
{
|
|
Name: v015incentive.Large,
|
|
MonthsLockup: 12,
|
|
Factor: sdk.MustNewDecFromStr("0.8"),
|
|
},
|
|
{
|
|
Name: v015incentive.Medium,
|
|
MonthsLockup: 9,
|
|
Factor: sdk.MustNewDecFromStr("0.7"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
USDXRewardState: v015incentive.GenesisRewardState{
|
|
AccumulationTimes: v015incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "usdx",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "usdx",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
USDXMintingClaims: v015incentive.USDXMintingClaims{
|
|
{
|
|
BaseClaim: v015incentive.BaseClaim{
|
|
Owner: s.addresses[0],
|
|
Reward: sdk.NewCoin("usdx", sdkmath.NewInt(100)),
|
|
},
|
|
RewardIndexes: v015incentive.RewardIndexes{
|
|
{
|
|
CollateralType: "kava",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.5"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
HardSupplyRewardState: v015incentive.GenesisRewardState{
|
|
AccumulationTimes: v015incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "usdx",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "usdx",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
HardBorrowRewardState: v015incentive.GenesisRewardState{
|
|
AccumulationTimes: v015incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "hard",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "hard",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
DelegatorRewardState: v015incentive.GenesisRewardState{
|
|
AccumulationTimes: v015incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "usdx",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "usdx",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
SwapRewardState: v015incentive.GenesisRewardState{
|
|
AccumulationTimes: v015incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "swap",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "swap",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
HardLiquidityProviderClaims: v015incentive.HardLiquidityProviderClaims{
|
|
{
|
|
BaseMultiClaim: v015incentive.BaseMultiClaim{
|
|
Owner: s.addresses[1],
|
|
Reward: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(100))),
|
|
},
|
|
SupplyRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
BorrowRewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
DelegatorClaims: v015incentive.DelegatorClaims{
|
|
{
|
|
BaseMultiClaim: v015incentive.BaseMultiClaim{
|
|
Owner: s.addresses[1],
|
|
Reward: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(100))),
|
|
},
|
|
RewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
SwapClaims: v015incentive.SwapClaims{
|
|
{
|
|
BaseMultiClaim: v015incentive.BaseMultiClaim{
|
|
Owner: s.addresses[1],
|
|
Reward: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(100))),
|
|
},
|
|
RewardIndexes: v015incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v015incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
expected := v016incentive.GenesisState{
|
|
USDXRewardState: v016incentive.GenesisRewardState{
|
|
AccumulationTimes: v016incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "usdx",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "usdx",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Params: v016incentive.Params{
|
|
ClaimEnd: time.Date(2020, time.March, 1, 2, 0, 0, 0, time.UTC),
|
|
USDXMintingRewardPeriods: []v016incentive.RewardPeriod{
|
|
{
|
|
Active: true,
|
|
CollateralType: "usdx",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoin("usdx", sdkmath.NewInt(10)),
|
|
},
|
|
},
|
|
HardSupplyRewardPeriods: v016incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "usdx",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
HardBorrowRewardPeriods: v016incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "bnb",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("bnb", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
DelegatorRewardPeriods: v016incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "bnb",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("bnb", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
SwapRewardPeriods: v016incentive.MultiRewardPeriods{
|
|
{
|
|
Active: true,
|
|
CollateralType: "bnb",
|
|
Start: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
End: time.Date(2021, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
RewardsPerSecond: sdk.NewCoins(sdk.NewCoin("bnb", sdkmath.NewInt(10))),
|
|
},
|
|
},
|
|
ClaimMultipliers: []v016incentive.MultipliersPerDenom{
|
|
{
|
|
Denom: "usdx",
|
|
Multipliers: v016incentive.Multipliers{
|
|
{
|
|
Name: "small",
|
|
MonthsLockup: 6,
|
|
Factor: sdk.MustNewDecFromStr("0.5"),
|
|
},
|
|
{
|
|
Name: "large",
|
|
MonthsLockup: 12,
|
|
Factor: sdk.MustNewDecFromStr("0.8"),
|
|
},
|
|
{
|
|
Name: "medium",
|
|
MonthsLockup: 9,
|
|
Factor: sdk.MustNewDecFromStr("0.7"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
USDXMintingClaims: v016incentive.USDXMintingClaims{
|
|
{
|
|
BaseClaim: v016incentive.BaseClaim{
|
|
Owner: s.addresses[0],
|
|
Reward: sdk.NewCoin("usdx", sdkmath.NewInt(100)),
|
|
},
|
|
RewardIndexes: v016incentive.RewardIndexes{
|
|
{
|
|
CollateralType: "kava",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.5"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
HardSupplyRewardState: v016incentive.GenesisRewardState{
|
|
AccumulationTimes: v016incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "usdx",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "usdx",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
HardBorrowRewardState: v016incentive.GenesisRewardState{
|
|
AccumulationTimes: v016incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "hard",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "hard",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
DelegatorRewardState: v016incentive.GenesisRewardState{
|
|
AccumulationTimes: v016incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "usdx",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "usdx",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.15"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
SwapRewardState: v016incentive.GenesisRewardState{
|
|
AccumulationTimes: v016incentive.AccumulationTimes{
|
|
{
|
|
CollateralType: "swap",
|
|
PreviousAccumulationTime: time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
MultiRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "swap",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
HardLiquidityProviderClaims: v016incentive.HardLiquidityProviderClaims{
|
|
{
|
|
BaseMultiClaim: v016incentive.BaseMultiClaim{
|
|
Owner: s.addresses[1],
|
|
Reward: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(100))),
|
|
},
|
|
SupplyRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
BorrowRewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
DelegatorClaims: v016incentive.DelegatorClaims{
|
|
{
|
|
BaseMultiClaim: v016incentive.BaseMultiClaim{
|
|
Owner: s.addresses[1],
|
|
Reward: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(100))),
|
|
},
|
|
RewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
SwapClaims: v016incentive.SwapClaims{
|
|
{
|
|
BaseMultiClaim: v016incentive.BaseMultiClaim{
|
|
Owner: s.addresses[1],
|
|
Reward: sdk.NewCoins(sdk.NewCoin("usdx", sdkmath.NewInt(100))),
|
|
},
|
|
RewardIndexes: v016incentive.MultiRewardIndexes{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardIndexes: []v016incentive.RewardIndex{
|
|
{
|
|
CollateralType: "bnb",
|
|
RewardFactor: sdk.MustNewDecFromStr("0.25"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
genState := Migrate(v15genstate)
|
|
s.Require().Equal(expected, *genState)
|
|
}
|
|
|
|
func TestIncentiveMigrateTestSuite(t *testing.T) {
|
|
suite.Run(t, new(migrateTestSuite))
|
|
}
|