Add savings to incentive genesis (#1205)

* define and generate proto types

* implement savings claim msg + test

* implement savings claim + test

* register msg and add store keys

* implement savings claim keeper methods

* update function comment

* define and generate proto types, update types dir

* update gen state with savings + test

* update legacy test data for ci test

* update proto types numbering

* update params proto types numbering
This commit is contained in:
Denali Marsh 2022-04-04 22:01:48 +02:00 committed by GitHub
parent fc3f0cfd2f
commit 72e8f2f40f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 341 additions and 159 deletions

View File

@ -3819,9 +3819,9 @@ Params
| `hard_borrow_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | | `hard_borrow_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | |
| `delegator_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | | `delegator_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | |
| `swap_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | | `swap_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | |
| `savings_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | |
| `claim_multipliers` | [MultipliersPerDenom](#kava.incentive.v1beta1.MultipliersPerDenom) | repeated | | | `claim_multipliers` | [MultipliersPerDenom](#kava.incentive.v1beta1.MultipliersPerDenom) | repeated | |
| `claim_end` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | | `claim_end` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | |
| `savings_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | |
@ -3913,6 +3913,8 @@ GenesisState is the state that must be provided at genesis.
| `hard_liquidity_provider_claims` | [HardLiquidityProviderClaim](#kava.incentive.v1beta1.HardLiquidityProviderClaim) | repeated | | | `hard_liquidity_provider_claims` | [HardLiquidityProviderClaim](#kava.incentive.v1beta1.HardLiquidityProviderClaim) | repeated | |
| `delegator_claims` | [DelegatorClaim](#kava.incentive.v1beta1.DelegatorClaim) | repeated | | | `delegator_claims` | [DelegatorClaim](#kava.incentive.v1beta1.DelegatorClaim) | repeated | |
| `swap_claims` | [SwapClaim](#kava.incentive.v1beta1.SwapClaim) | repeated | | | `swap_claims` | [SwapClaim](#kava.incentive.v1beta1.SwapClaim) | repeated | |
| `savings_reward_state` | [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) | | |
| `savings_claims` | [SavingsClaim](#kava.incentive.v1beta1.SavingsClaim) | repeated | |

View File

@ -56,4 +56,8 @@ message GenesisState {
[(gogoproto.castrepeated) = "DelegatorClaims", (gogoproto.nullable) = false]; [(gogoproto.castrepeated) = "DelegatorClaims", (gogoproto.nullable) = false];
repeated SwapClaim swap_claims = 10 [(gogoproto.castrepeated) = "SwapClaims", (gogoproto.nullable) = false]; repeated SwapClaim swap_claims = 10 [(gogoproto.castrepeated) = "SwapClaims", (gogoproto.nullable) = false];
GenesisRewardState savings_reward_state = 11 [(gogoproto.nullable) = false];
repeated SavingsClaim savings_claims = 12 [(gogoproto.castrepeated) = "SavingsClaims", (gogoproto.nullable) = false];
} }

View File

@ -72,11 +72,11 @@ message Params {
repeated MultiRewardPeriod swap_reward_periods = 5 repeated MultiRewardPeriod swap_reward_periods = 5
[(gogoproto.castrepeated) = "MultiRewardPeriods", (gogoproto.nullable) = false]; [(gogoproto.castrepeated) = "MultiRewardPeriods", (gogoproto.nullable) = false];
repeated MultiRewardPeriod savings_reward_periods = 6 repeated MultipliersPerDenom claim_multipliers = 6
[(gogoproto.castrepeated) = "MultiRewardPeriods", (gogoproto.nullable) = false];
repeated MultipliersPerDenom claim_multipliers = 7
[(gogoproto.castrepeated) = "MultipliersPerDenoms", (gogoproto.nullable) = false]; [(gogoproto.castrepeated) = "MultipliersPerDenoms", (gogoproto.nullable) = false];
google.protobuf.Timestamp claim_end = 8 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; google.protobuf.Timestamp claim_end = 7 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
repeated MultiRewardPeriod savings_reward_periods = 8
[(gogoproto.castrepeated) = "MultiRewardPeriods", (gogoproto.nullable) = false];
} }

View File

@ -112,6 +112,20 @@ func InitGenesis(
for _, mri := range gs.SwapRewardState.MultiRewardIndexes { for _, mri := range gs.SwapRewardState.MultiRewardIndexes {
k.SetSwapRewardIndexes(ctx, mri.CollateralType, mri.RewardIndexes) k.SetSwapRewardIndexes(ctx, mri.CollateralType, mri.RewardIndexes)
} }
// Savings
for _, claim := range gs.SavingsClaims {
k.SetSavingsClaim(ctx, claim)
}
for _, gat := range gs.SavingsRewardState.AccumulationTimes {
if err := ValidateAccumulationTime(gat.PreviousAccumulationTime, ctx.BlockTime()); err != nil {
panic(err.Error())
}
k.SetSavingsRewardAccrualTime(ctx, gat.CollateralType, gat.PreviousAccumulationTime)
}
for _, mri := range gs.SavingsRewardState.MultiRewardIndexes {
k.SetSavingsRewardIndexes(ctx, mri.CollateralType, mri.RewardIndexes)
}
} }
// ExportGenesis export genesis state for incentive module // ExportGenesis export genesis state for incentive module
@ -131,10 +145,13 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState {
swapClaims := k.GetAllSwapClaims(ctx) swapClaims := k.GetAllSwapClaims(ctx)
swapRewardState := getSwapGenesisRewardState(ctx, k) swapRewardState := getSwapGenesisRewardState(ctx, k)
savingsClaims := k.GetAllSavingsClaims(ctx)
savingsRewardState := getSavingsGenesisRewardState(ctx, k)
return types.NewGenesisState( return types.NewGenesisState(
params, params,
usdxRewardState, hardSupplyRewardState, hardBorrowRewardState, delegatorRewardState, swapRewardState, usdxRewardState, hardSupplyRewardState, hardBorrowRewardState, delegatorRewardState, swapRewardState,
usdxClaims, hardClaims, delegatorClaims, swapClaims, savingsRewardState, usdxClaims, hardClaims, delegatorClaims, swapClaims, savingsClaims,
) )
} }
@ -224,6 +241,22 @@ func getSwapGenesisRewardState(ctx sdk.Context, keeper keeper.Keeper) types.Gene
return types.NewGenesisRewardState(ats, mris) return types.NewGenesisRewardState(ats, mris)
} }
func getSavingsGenesisRewardState(ctx sdk.Context, keeper keeper.Keeper) types.GenesisRewardState {
var ats types.AccumulationTimes
keeper.IterateSavingsRewardAccrualTimes(ctx, func(ctype string, accTime time.Time) bool {
ats = append(ats, types.NewAccumulationTime(ctype, accTime))
return false
})
var mris types.MultiRewardIndexes
keeper.IterateSavingsRewardIndexes(ctx, func(ctype string, indexes types.RewardIndexes) bool {
mris = append(mris, types.NewMultiRewardIndex(ctype, indexes))
return false
})
return types.NewGenesisRewardState(ats, mris)
}
func ValidateAccumulationTime(previousAccumulationTime, genesisTime time.Time) error { func ValidateAccumulationTime(previousAccumulationTime, genesisTime time.Time) error {
if previousAccumulationTime.Before(genesisTime.Add(-1 * EarliestValidAccumulationTime)) { if previousAccumulationTime.Before(genesisTime.Add(-1 * EarliestValidAccumulationTime)) {
return fmt.Errorf( return fmt.Errorf(

View File

@ -99,10 +99,12 @@ func (suite *GenesisTestSuite) SetupTest() {
types.DefaultGenesisRewardState, types.DefaultGenesisRewardState,
types.DefaultGenesisRewardState, types.DefaultGenesisRewardState,
types.DefaultGenesisRewardState, types.DefaultGenesisRewardState,
types.DefaultGenesisRewardState,
types.DefaultUSDXClaims, types.DefaultUSDXClaims,
types.DefaultHardClaims, types.DefaultHardClaims,
types.DefaultDelegatorClaims, types.DefaultDelegatorClaims,
types.DefaultSwapClaims, types.DefaultSwapClaims,
types.DefaultSavingsClaims,
) )
cdc := suite.app.AppCodec() cdc := suite.app.AppCodec()
@ -197,6 +199,14 @@ func (suite *GenesisTestSuite) TestExportedGenesisMatchesImported() {
types.NewMultiRewardIndex("btcb/usdx", types.RewardIndexes{{CollateralType: "swap", RewardFactor: d("0.001")}}), types.NewMultiRewardIndex("btcb/usdx", types.RewardIndexes{{CollateralType: "swap", RewardFactor: d("0.001")}}),
}, },
), ),
types.NewGenesisRewardState(
types.AccumulationTimes{
types.NewAccumulationTime("ukava", genesisTime.Add(-3*time.Hour)),
},
types.MultiRewardIndexes{
types.NewMultiRewardIndex("ukava", types.RewardIndexes{{CollateralType: "ukava", RewardFactor: d("0.2")}}),
},
),
types.USDXMintingClaims{ types.USDXMintingClaims{
types.NewUSDXMintingClaim( types.NewUSDXMintingClaim(
suite.addrs[0], suite.addrs[0],
@ -237,6 +247,13 @@ func (suite *GenesisTestSuite) TestExportedGenesisMatchesImported() {
types.MultiRewardIndexes{{CollateralType: "btcb/usdx", RewardIndexes: types.RewardIndexes{{CollateralType: "swap", RewardFactor: d("0.0")}}}}, types.MultiRewardIndexes{{CollateralType: "btcb/usdx", RewardIndexes: types.RewardIndexes{{CollateralType: "swap", RewardFactor: d("0.0")}}}},
), ),
}, },
types.SavingsClaims{
types.NewSavingsClaim(
suite.addrs[3],
nil,
types.MultiRewardIndexes{{CollateralType: "ukava", RewardIndexes: types.RewardIndexes{{CollateralType: "ukava", RewardFactor: d("0.0")}}}},
),
},
) )
tApp := app.NewTestApp() tApp := app.NewTestApp()
@ -311,6 +328,12 @@ func (suite *GenesisTestSuite) TestInitGenesisPanicsWhenAccumulationTimesToLongA
SwapRewardState: invalidRewardState, SwapRewardState: invalidRewardState,
}, },
}, },
{
types.GenesisState{
Params: minimalParams,
SavingsRewardState: invalidRewardState,
},
},
} }
for _, tc := range testCases { for _, tc := range testCases {

View File

@ -223,6 +223,10 @@
} }
] ]
}, },
"savings_reward_state": {
"accumulation_times": [],
"multi_reward_indexes": []
},
"usdx_minting_claims": [ "usdx_minting_claims": [
{ {
"base_claim": { "base_claim": {
@ -328,5 +332,6 @@
} }
] ]
} }
] ],
"savings_claims": []
} }

View File

@ -10,6 +10,7 @@ var (
DefaultHardClaims = HardLiquidityProviderClaims{} DefaultHardClaims = HardLiquidityProviderClaims{}
DefaultDelegatorClaims = DelegatorClaims{} DefaultDelegatorClaims = DelegatorClaims{}
DefaultSwapClaims = SwapClaims{} DefaultSwapClaims = SwapClaims{}
DefaultSavingsClaims = SavingsClaims{}
DefaultGenesisRewardState = NewGenesisRewardState( DefaultGenesisRewardState = NewGenesisRewardState(
AccumulationTimes{}, AccumulationTimes{},
MultiRewardIndexes{}, MultiRewardIndexes{},
@ -19,8 +20,8 @@ var (
// NewGenesisState returns a new genesis state // NewGenesisState returns a new genesis state
func NewGenesisState( func NewGenesisState(
params Params, params Params,
usdxState, hardSupplyState, hardBorrowState, delegatorState, swapState GenesisRewardState, usdxState, hardSupplyState, hardBorrowState, delegatorState, swapState, savingsState GenesisRewardState,
c USDXMintingClaims, hc HardLiquidityProviderClaims, dc DelegatorClaims, sc SwapClaims, c USDXMintingClaims, hc HardLiquidityProviderClaims, dc DelegatorClaims, sc SwapClaims, savingsc SavingsClaims,
) GenesisState { ) GenesisState {
return GenesisState{ return GenesisState{
Params: params, Params: params,
@ -30,11 +31,13 @@ func NewGenesisState(
HardBorrowRewardState: hardBorrowState, HardBorrowRewardState: hardBorrowState,
DelegatorRewardState: delegatorState, DelegatorRewardState: delegatorState,
SwapRewardState: swapState, SwapRewardState: swapState,
SavingsRewardState: savingsState,
USDXMintingClaims: c, USDXMintingClaims: c,
HardLiquidityProviderClaims: hc, HardLiquidityProviderClaims: hc,
DelegatorClaims: dc, DelegatorClaims: dc,
SwapClaims: sc, SwapClaims: sc,
SavingsClaims: savingsc,
} }
} }
@ -47,10 +50,12 @@ func DefaultGenesisState() GenesisState {
HardBorrowRewardState: DefaultGenesisRewardState, HardBorrowRewardState: DefaultGenesisRewardState,
DelegatorRewardState: DefaultGenesisRewardState, DelegatorRewardState: DefaultGenesisRewardState,
SwapRewardState: DefaultGenesisRewardState, SwapRewardState: DefaultGenesisRewardState,
SavingsRewardState: DefaultGenesisRewardState,
USDXMintingClaims: DefaultUSDXClaims, USDXMintingClaims: DefaultUSDXClaims,
HardLiquidityProviderClaims: DefaultHardClaims, HardLiquidityProviderClaims: DefaultHardClaims,
DelegatorClaims: DefaultDelegatorClaims, DelegatorClaims: DefaultDelegatorClaims,
SwapClaims: DefaultSwapClaims, SwapClaims: DefaultSwapClaims,
SavingsClaims: DefaultSavingsClaims,
} }
} }
@ -76,6 +81,9 @@ func (gs GenesisState) Validate() error {
if err := gs.SwapRewardState.Validate(); err != nil { if err := gs.SwapRewardState.Validate(); err != nil {
return err return err
} }
if err := gs.SavingsRewardState.Validate(); err != nil {
return err
}
if err := gs.USDXMintingClaims.Validate(); err != nil { if err := gs.USDXMintingClaims.Validate(); err != nil {
return err return err
@ -86,7 +94,10 @@ func (gs GenesisState) Validate() error {
if err := gs.DelegatorClaims.Validate(); err != nil { if err := gs.DelegatorClaims.Validate(); err != nil {
return err return err
} }
return gs.SwapClaims.Validate() if err := gs.SwapClaims.Validate(); err != nil {
return err
}
return gs.SavingsClaims.Validate()
} }
// NewGenesisRewardState returns a new GenesisRewardState // NewGenesisRewardState returns a new GenesisRewardState

View File

@ -117,6 +117,8 @@ type GenesisState struct {
HardLiquidityProviderClaims HardLiquidityProviderClaims `protobuf:"bytes,8,rep,name=hard_liquidity_provider_claims,json=hardLiquidityProviderClaims,proto3,castrepeated=HardLiquidityProviderClaims" json:"hard_liquidity_provider_claims"` HardLiquidityProviderClaims HardLiquidityProviderClaims `protobuf:"bytes,8,rep,name=hard_liquidity_provider_claims,json=hardLiquidityProviderClaims,proto3,castrepeated=HardLiquidityProviderClaims" json:"hard_liquidity_provider_claims"`
DelegatorClaims DelegatorClaims `protobuf:"bytes,9,rep,name=delegator_claims,json=delegatorClaims,proto3,castrepeated=DelegatorClaims" json:"delegator_claims"` DelegatorClaims DelegatorClaims `protobuf:"bytes,9,rep,name=delegator_claims,json=delegatorClaims,proto3,castrepeated=DelegatorClaims" json:"delegator_claims"`
SwapClaims SwapClaims `protobuf:"bytes,10,rep,name=swap_claims,json=swapClaims,proto3,castrepeated=SwapClaims" json:"swap_claims"` SwapClaims SwapClaims `protobuf:"bytes,10,rep,name=swap_claims,json=swapClaims,proto3,castrepeated=SwapClaims" json:"swap_claims"`
SavingsRewardState GenesisRewardState `protobuf:"bytes,11,opt,name=savings_reward_state,json=savingsRewardState,proto3" json:"savings_reward_state"`
SavingsClaims SavingsClaims `protobuf:"bytes,12,rep,name=savings_claims,json=savingsClaims,proto3,castrepeated=SavingsClaims" json:"savings_claims"`
} }
func (m *GenesisState) Reset() { *m = GenesisState{} } func (m *GenesisState) Reset() { *m = GenesisState{} }
@ -163,51 +165,54 @@ func init() {
} }
var fileDescriptor_8b76737885d05afd = []byte{ var fileDescriptor_8b76737885d05afd = []byte{
// 698 bytes of a gzipped FileDescriptorProto // 744 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x41, 0x6f, 0xd3, 0x30, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xcf, 0x4f, 0x13, 0x41,
0x18, 0x86, 0x9b, 0x6d, 0x8c, 0xcd, 0x45, 0x74, 0x35, 0x63, 0x2b, 0x9d, 0x94, 0x8e, 0x0d, 0x41, 0x14, 0xc7, 0xbb, 0x80, 0x08, 0x53, 0xa0, 0x74, 0x2c, 0x50, 0x4b, 0xb2, 0x45, 0x20, 0xda, 0x68,
0x05, 0x22, 0xd1, 0xca, 0x95, 0x0b, 0x61, 0x12, 0x4c, 0x62, 0xd2, 0x94, 0x0e, 0x84, 0x10, 0x52, 0xdc, 0x0d, 0xf5, 0xea, 0xc5, 0x95, 0x44, 0x49, 0x24, 0x21, 0x5b, 0x34, 0xc6, 0x98, 0x34, 0xb3,
0xe5, 0x34, 0x5e, 0x66, 0x48, 0xe2, 0x10, 0x3b, 0xed, 0x7a, 0xe3, 0xc8, 0x71, 0x3f, 0x00, 0x89, 0xdd, 0x61, 0x19, 0xdd, 0x5f, 0xee, 0xec, 0xb6, 0xf4, 0xe6, 0xd1, 0x9b, 0xfc, 0x01, 0x26, 0xde,
0x3b, 0x7f, 0x84, 0x1d, 0x77, 0xe4, 0xb4, 0x41, 0xf7, 0x47, 0x90, 0x9d, 0xa4, 0x4b, 0xda, 0x65, 0xfd, 0x4b, 0x38, 0x72, 0xf4, 0x04, 0x5a, 0xfe, 0x11, 0x33, 0xb3, 0xb3, 0x65, 0xb7, 0x65, 0x31,
0x88, 0x71, 0x4b, 0x3f, 0xbf, 0xdf, 0xfb, 0xbc, 0xf6, 0xe7, 0x26, 0xe0, 0xde, 0x47, 0xd4, 0x43, 0xe2, 0x6d, 0xfa, 0xe6, 0xbd, 0xef, 0xe7, 0x3b, 0xf3, 0xde, 0x76, 0xc0, 0xe6, 0x47, 0xd4, 0x45,
0x3a, 0xf1, 0xbb, 0xd8, 0xe7, 0xa4, 0x87, 0xf5, 0xde, 0x86, 0x85, 0x39, 0xda, 0xd0, 0x1d, 0xec, 0x2a, 0x71, 0x3b, 0xd8, 0x0d, 0x49, 0x17, 0xab, 0xdd, 0x2d, 0x03, 0x87, 0x68, 0x4b, 0xb5, 0xb0,
0x63, 0x46, 0x98, 0x16, 0x84, 0x94, 0x53, 0xb8, 0x24, 0x54, 0xda, 0x48, 0xa5, 0x25, 0xaa, 0xfa, 0x8b, 0x29, 0xa1, 0x8a, 0x1f, 0x78, 0xa1, 0x07, 0x97, 0x59, 0x96, 0x32, 0xcc, 0x52, 0x44, 0x56,
0xa2, 0x43, 0x1d, 0x2a, 0x25, 0xba, 0x78, 0x8a, 0xd5, 0xf5, 0xf5, 0x02, 0xcf, 0xae, 0x8b, 0x88, 0xad, 0x62, 0x79, 0x96, 0xc7, 0x53, 0x54, 0xb6, 0x8a, 0xb3, 0x6b, 0x1b, 0x39, 0x9a, 0x1d, 0x1b,
0xc7, 0xfe, 0x22, 0x0a, 0x50, 0x88, 0x46, 0xa2, 0x86, 0x43, 0xa9, 0xe3, 0x62, 0x5d, 0xfe, 0xb2, 0x11, 0x87, 0xfe, 0x25, 0xc9, 0x47, 0x01, 0x1a, 0x26, 0xd5, 0x2d, 0xcf, 0xb3, 0x6c, 0xac, 0xf2,
0xa2, 0x3d, 0x9d, 0x13, 0x0f, 0x33, 0x8e, 0xbc, 0x20, 0x16, 0xac, 0x7d, 0x53, 0xc0, 0xc2, 0xb3, 0x5f, 0x46, 0x74, 0xa0, 0x86, 0xc4, 0xc1, 0x34, 0x44, 0x8e, 0x1f, 0x27, 0xac, 0x7f, 0x97, 0xc0,
0x6e, 0x37, 0xf2, 0x22, 0x17, 0x71, 0x42, 0xfd, 0x5d, 0xe2, 0x61, 0xf8, 0x00, 0x54, 0xba, 0xd4, 0xe2, 0xb3, 0x4e, 0x27, 0x72, 0x22, 0x1b, 0x85, 0xc4, 0x73, 0xf7, 0x89, 0x83, 0xe1, 0x03, 0x50,
0x75, 0x11, 0xc7, 0x21, 0x72, 0x3b, 0x7c, 0x10, 0xe0, 0x9a, 0xb2, 0xaa, 0x34, 0xe7, 0xcd, 0x9b, 0xea, 0x78, 0xb6, 0x8d, 0x42, 0x1c, 0x20, 0xbb, 0x1d, 0xf6, 0x7d, 0x5c, 0x95, 0xd6, 0xa4, 0xc6,
0xe7, 0xe5, 0xdd, 0x41, 0x80, 0xa1, 0x05, 0xea, 0x41, 0x88, 0x7b, 0x84, 0x46, 0xac, 0x83, 0x32, 0xac, 0xbe, 0x70, 0x19, 0xde, 0xef, 0xfb, 0x18, 0x1a, 0xa0, 0xe6, 0x07, 0xb8, 0x4b, 0xbc, 0x88,
0x2e, 0x1d, 0x81, 0xa9, 0x4d, 0xad, 0x2a, 0xcd, 0x72, 0xab, 0xae, 0xc5, 0x19, 0xb4, 0x34, 0x83, 0xb6, 0x51, 0x4a, 0xa5, 0xcd, 0x30, 0xd5, 0x89, 0x35, 0xa9, 0x51, 0x6c, 0xd6, 0x94, 0xd8, 0x83,
0xb6, 0x9b, 0x66, 0x30, 0xe6, 0x8e, 0x4e, 0x1a, 0xa5, 0xc3, 0xd3, 0x86, 0x62, 0xd6, 0x52, 0x9f, 0x92, 0x78, 0x50, 0xf6, 0x13, 0x0f, 0xda, 0xcc, 0xc9, 0x59, 0xbd, 0x70, 0x7c, 0x5e, 0x97, 0xf4,
0xf1, 0x30, 0x6b, 0x9f, 0xa7, 0x00, 0x7c, 0x11, 0x1f, 0xa6, 0x89, 0xfb, 0x28, 0xb4, 0xdb, 0x1c, 0x6a, 0xa2, 0x33, 0x6a, 0x66, 0xfd, 0xf3, 0x04, 0x80, 0x2f, 0xe2, 0xcb, 0xd4, 0x71, 0x0f, 0x05,
0x71, 0x0c, 0x43, 0x00, 0x27, 0x88, 0xac, 0xa6, 0xac, 0x4e, 0x37, 0xcb, 0xad, 0xa6, 0x76, 0xf1, 0x66, 0x2b, 0x44, 0x21, 0x86, 0x01, 0x80, 0x63, 0x44, 0x5a, 0x95, 0xd6, 0x26, 0x1b, 0xc5, 0x66,
0x71, 0x6b, 0xe3, 0xe6, 0xc6, 0x1d, 0x11, 0xe0, 0xfb, 0x69, 0xa3, 0x3a, 0xbe, 0xc2, 0xcc, 0x2a, 0x43, 0xb9, 0xfa, 0xba, 0x95, 0x51, 0x71, 0xed, 0x2e, 0x33, 0xf0, 0xe3, 0xbc, 0x5e, 0x1e, 0xdd,
0x1a, 0x2f, 0xc1, 0x1e, 0x58, 0xf4, 0x22, 0x97, 0x93, 0x4e, 0x28, 0x83, 0x74, 0x88, 0x6f, 0xe3, 0xa1, 0x7a, 0x19, 0x8d, 0x86, 0x60, 0x17, 0x54, 0x9c, 0xc8, 0x0e, 0x49, 0x3b, 0xe0, 0x46, 0xda,
0x03, 0xcc, 0x6a, 0x53, 0x97, 0x53, 0xb7, 0x45, 0x4f, 0x9c, 0x7d, 0x4b, 0x74, 0x18, 0xf5, 0x84, 0xc4, 0x35, 0xf1, 0x11, 0xa6, 0xd5, 0x89, 0xeb, 0xa9, 0xbb, 0xac, 0x26, 0xf6, 0xbe, 0xc3, 0x2a,
0x0a, 0xc7, 0x57, 0x30, 0x33, 0xa1, 0x37, 0x51, 0x5b, 0xfb, 0x31, 0x07, 0x6e, 0x24, 0x47, 0x10, 0xb4, 0x9a, 0xa0, 0xc2, 0xd1, 0x1d, 0x4c, 0x75, 0xe8, 0x8c, 0xc5, 0xd6, 0xbf, 0x02, 0x30, 0x27,
0x6f, 0xfe, 0x29, 0x98, 0x8d, 0xc7, 0x2c, 0xe7, 0x52, 0x6e, 0xa9, 0x45, 0xe8, 0x1d, 0xa9, 0x32, 0xae, 0x20, 0x3e, 0xfc, 0x53, 0x30, 0x1d, 0xb7, 0x99, 0xf7, 0xa5, 0xd8, 0x94, 0xf3, 0xd0, 0x7b,
0x66, 0x04, 0xd0, 0x4c, 0x7a, 0x20, 0x05, 0xd5, 0x88, 0xd9, 0x07, 0xe9, 0x2e, 0x98, 0xb0, 0x4c, 0x3c, 0x4b, 0x9b, 0x62, 0x40, 0x5d, 0xd4, 0x40, 0x0f, 0x94, 0x23, 0x6a, 0x1e, 0x25, 0xa7, 0xa0,
0x86, 0xf5, 0xb0, 0xc8, 0x68, 0x72, 0x02, 0xc6, 0xb2, 0x30, 0x1d, 0x9e, 0x34, 0x2a, 0xaf, 0xdb, 0x4c, 0x52, 0x34, 0xeb, 0x61, 0x9e, 0xd0, 0x78, 0x07, 0xb4, 0x15, 0x26, 0x3a, 0x38, 0xab, 0x97,
0x9b, 0x6f, 0x33, 0x0b, 0x66, 0x45, 0xb8, 0x67, 0x67, 0x45, 0x40, 0x6d, 0x5f, 0x92, 0xa2, 0x20, 0x5e, 0xb7, 0xb6, 0xdf, 0xa6, 0x36, 0xf4, 0x12, 0x53, 0x4f, 0xf7, 0x8a, 0x80, 0xea, 0x21, 0x27,
0x70, 0x07, 0x79, 0xee, 0xf4, 0x3f, 0x73, 0xe3, 0xcd, 0xdc, 0x16, 0x8e, 0x6d, 0x69, 0x78, 0x11, 0x45, 0xbe, 0x6f, 0xf7, 0xb3, 0xdc, 0xc9, 0x7f, 0xe6, 0xc6, 0x87, 0x59, 0x62, 0x8a, 0x2d, 0x2e,
0xca, 0xa2, 0x61, 0x48, 0xfb, 0x79, 0xd4, 0xcc, 0xff, 0xa0, 0x0c, 0x69, 0x98, 0x45, 0xed, 0x81, 0x78, 0x15, 0xca, 0xf0, 0x82, 0xc0, 0xeb, 0x65, 0x51, 0x53, 0xff, 0x83, 0xd2, 0xb8, 0x60, 0x1a,
0x25, 0x1b, 0xbb, 0xd8, 0x41, 0x9c, 0x86, 0x79, 0xd0, 0xb5, 0x2b, 0x82, 0x16, 0x47, 0x7e, 0x59, 0x75, 0x00, 0x96, 0x4d, 0x6c, 0x63, 0x0b, 0x85, 0x5e, 0x90, 0x05, 0xdd, 0xba, 0x21, 0xa8, 0x32,
0xce, 0x7b, 0x50, 0x65, 0x7d, 0x14, 0xe4, 0x11, 0xb3, 0x57, 0x44, 0x54, 0x84, 0x55, 0xd6, 0xfd, 0xd4, 0x4b, 0x73, 0xde, 0x83, 0x32, 0xed, 0x21, 0x3f, 0x8b, 0x98, 0xbe, 0x21, 0xa2, 0xc4, 0xa4,
0x8b, 0x02, 0x6e, 0xc9, 0xdb, 0xe0, 0x11, 0x9f, 0x13, 0xdf, 0xe9, 0xc4, 0x2f, 0x99, 0xda, 0xf5, 0xd2, 0xea, 0x5f, 0x24, 0x70, 0x87, 0x4f, 0x83, 0x43, 0xdc, 0x90, 0xb8, 0x56, 0x3b, 0xfe, 0x93,
0xcb, 0xef, 0xb4, 0x98, 0xf9, 0x76, 0xdc, 0xf1, 0x5c, 0x34, 0x18, 0x5a, 0x72, 0x1b, 0xaa, 0xe3, 0xa9, 0xde, 0xbe, 0x7e, 0xa6, 0x59, 0xcf, 0x77, 0xe3, 0x8a, 0xe7, 0xac, 0x40, 0x53, 0xc4, 0x34,
0x2b, 0x4c, 0xfc, 0xbd, 0x26, 0x8a, 0xa6, 0xbc, 0x82, 0xb9, 0x12, 0xfc, 0xaa, 0x00, 0x55, 0x0e, 0x94, 0x47, 0x77, 0x28, 0xfb, 0xbc, 0xc6, 0x82, 0x3a, 0x1f, 0xc1, 0x4c, 0x08, 0x7e, 0x93, 0x80,
0xcf, 0x25, 0x9f, 0x22, 0x62, 0x13, 0x3e, 0xe8, 0x04, 0x21, 0xed, 0x11, 0x1b, 0x87, 0x69, 0xaa, 0xcc, 0x9b, 0x67, 0x93, 0x4f, 0x11, 0x31, 0x49, 0xd8, 0x6f, 0xfb, 0x81, 0xd7, 0x25, 0x26, 0x0e,
0x39, 0x99, 0xaa, 0x55, 0x94, 0xea, 0x25, 0x0a, 0xed, 0x57, 0x69, 0xf3, 0x4e, 0xd2, 0x1b, 0xe7, 0x12, 0x57, 0x33, 0xdc, 0x55, 0x33, 0xcf, 0xd5, 0x4b, 0x14, 0x98, 0xaf, 0x92, 0xe2, 0x3d, 0x51,
0x5b, 0x4f, 0xfe, 0x73, 0x2b, 0xc5, 0x1a, 0x66, 0xae, 0xec, 0x17, 0x2f, 0xc2, 0x0f, 0x60, 0xe1, 0x1b, 0xfb, 0xdb, 0x10, 0xdf, 0xdc, 0x6a, 0x7e, 0x0e, 0xd5, 0x57, 0x0f, 0xf3, 0x37, 0xe1, 0x07,
0x7c, 0xde, 0x49, 0x9e, 0x79, 0x99, 0xe7, 0x7e, 0x51, 0x9e, 0xcd, 0x54, 0x1f, 0x67, 0x58, 0x4e, 0xb0, 0x78, 0xd9, 0x6f, 0xe1, 0x67, 0x96, 0xfb, 0xb9, 0x9f, 0xe7, 0x67, 0x3b, 0xc9, 0x8f, 0x3d,
0x32, 0x54, 0xf2, 0x75, 0x66, 0x56, 0xec, 0x7c, 0x01, 0xbe, 0x01, 0x65, 0x39, 0xf3, 0x04, 0x03, 0xac, 0x08, 0x0f, 0xa5, 0x6c, 0x9c, 0xea, 0x25, 0x33, 0x1b, 0x80, 0x6f, 0x40, 0x91, 0xf7, 0x5c,
0x24, 0xe6, 0x6e, 0x11, 0xa6, 0xdd, 0x47, 0x41, 0x4c, 0x80, 0x09, 0x01, 0x8c, 0x4a, 0xcc, 0x04, 0x60, 0x00, 0xc7, 0xdc, 0xcb, 0xc3, 0xb4, 0x7a, 0xc8, 0x8f, 0x09, 0x50, 0x10, 0xc0, 0x30, 0x44,
0x6c, 0xf4, 0x6c, 0x6c, 0x1d, 0xfd, 0x56, 0x4b, 0x47, 0x43, 0x55, 0x39, 0x1e, 0xaa, 0xca, 0xaf, 0x75, 0x40, 0x87, 0x6b, 0x68, 0x80, 0x0a, 0x45, 0x5d, 0xe2, 0x5a, 0x34, 0x3b, 0x4e, 0xc5, 0x1b,
0xa1, 0xaa, 0x1c, 0x9e, 0xa9, 0xa5, 0xe3, 0x33, 0xb5, 0xf4, 0xf3, 0x4c, 0x2d, 0xbd, 0x7b, 0xe4, 0x8e, 0x13, 0x14, 0x6a, 0xe9, 0x89, 0x32, 0xc0, 0x42, 0xc2, 0x10, 0xf6, 0xe7, 0xb8, 0xfd, 0xcd,
0x10, 0xbe, 0x1f, 0x59, 0x5a, 0x97, 0x7a, 0xba, 0x40, 0x3d, 0x76, 0x91, 0xc5, 0xe4, 0x93, 0x7e, 0x5c, 0xfb, 0x71, 0x76, 0x7c, 0x82, 0x25, 0x71, 0x82, 0xf9, 0x74, 0x94, 0xea, 0xf3, 0x34, 0xfd,
0x90, 0xf9, 0xd2, 0x88, 0x0f, 0x02, 0xb3, 0x66, 0xe5, 0xfb, 0xfc, 0xc9, 0x9f, 0x00, 0x00, 0x00, 0x53, 0xdb, 0x39, 0xf9, 0x2d, 0x17, 0x4e, 0x06, 0xb2, 0x74, 0x3a, 0x90, 0xa5, 0x5f, 0x03, 0x59,
0xff, 0xff, 0xaf, 0xfb, 0x24, 0xb7, 0x01, 0x07, 0x00, 0x00, 0x3a, 0xbe, 0x90, 0x0b, 0xa7, 0x17, 0x72, 0xe1, 0xe7, 0x85, 0x5c, 0x78, 0xf7, 0xc8, 0x22, 0xe1,
0x61, 0x64, 0x28, 0x1d, 0xcf, 0x51, 0x19, 0xf3, 0xb1, 0x8d, 0x0c, 0xca, 0x57, 0xea, 0x51, 0xea,
0xc5, 0x64, 0x0f, 0x1b, 0x35, 0xa6, 0xf9, 0xbb, 0xf4, 0xe4, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff,
0xfd, 0x2b, 0xb5, 0x5f, 0xc9, 0x07, 0x00, 0x00,
} }
func (m *AccumulationTime) Marshal() (dAtA []byte, err error) { func (m *AccumulationTime) Marshal() (dAtA []byte, err error) {
@ -319,6 +324,30 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.SavingsClaims) > 0 {
for iNdEx := len(m.SavingsClaims) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.SavingsClaims[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenesis(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x62
}
}
{
size, err := m.SavingsRewardState.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenesis(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x5a
if len(m.SwapClaims) > 0 { if len(m.SwapClaims) > 0 {
for iNdEx := len(m.SwapClaims) - 1; iNdEx >= 0; iNdEx-- { for iNdEx := len(m.SwapClaims) - 1; iNdEx >= 0; iNdEx-- {
{ {
@ -527,6 +556,14 @@ func (m *GenesisState) Size() (n int) {
n += 1 + l + sovGenesis(uint64(l)) n += 1 + l + sovGenesis(uint64(l))
} }
} }
l = m.SavingsRewardState.Size()
n += 1 + l + sovGenesis(uint64(l))
if len(m.SavingsClaims) > 0 {
for _, e := range m.SavingsClaims {
l = e.Size()
n += 1 + l + sovGenesis(uint64(l))
}
}
return n return n
} }
@ -1132,6 +1169,73 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 11:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field SavingsRewardState", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.SavingsRewardState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 12:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field SavingsClaims", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.SavingsClaims = append(m.SavingsClaims, SavingsClaim{})
if err := m.SavingsClaims[len(m.SavingsClaims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipGenesis(dAtA[iNdEx:]) skippy, err := skipGenesis(dAtA[iNdEx:])

View File

@ -199,9 +199,9 @@ type Params struct {
HardBorrowRewardPeriods MultiRewardPeriods `protobuf:"bytes,3,rep,name=hard_borrow_reward_periods,json=hardBorrowRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"hard_borrow_reward_periods"` HardBorrowRewardPeriods MultiRewardPeriods `protobuf:"bytes,3,rep,name=hard_borrow_reward_periods,json=hardBorrowRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"hard_borrow_reward_periods"`
DelegatorRewardPeriods MultiRewardPeriods `protobuf:"bytes,4,rep,name=delegator_reward_periods,json=delegatorRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"delegator_reward_periods"` DelegatorRewardPeriods MultiRewardPeriods `protobuf:"bytes,4,rep,name=delegator_reward_periods,json=delegatorRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"delegator_reward_periods"`
SwapRewardPeriods MultiRewardPeriods `protobuf:"bytes,5,rep,name=swap_reward_periods,json=swapRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"swap_reward_periods"` SwapRewardPeriods MultiRewardPeriods `protobuf:"bytes,5,rep,name=swap_reward_periods,json=swapRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"swap_reward_periods"`
SavingsRewardPeriods MultiRewardPeriods `protobuf:"bytes,6,rep,name=savings_reward_periods,json=savingsRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"savings_reward_periods"` ClaimMultipliers MultipliersPerDenoms `protobuf:"bytes,6,rep,name=claim_multipliers,json=claimMultipliers,proto3,castrepeated=MultipliersPerDenoms" json:"claim_multipliers"`
ClaimMultipliers MultipliersPerDenoms `protobuf:"bytes,7,rep,name=claim_multipliers,json=claimMultipliers,proto3,castrepeated=MultipliersPerDenoms" json:"claim_multipliers"` ClaimEnd time.Time `protobuf:"bytes,7,opt,name=claim_end,json=claimEnd,proto3,stdtime" json:"claim_end"`
ClaimEnd time.Time `protobuf:"bytes,8,opt,name=claim_end,json=claimEnd,proto3,stdtime" json:"claim_end"` SavingsRewardPeriods MultiRewardPeriods `protobuf:"bytes,8,rep,name=savings_reward_periods,json=savingsRewardPeriods,proto3,castrepeated=MultiRewardPeriods" json:"savings_reward_periods"`
} }
func (m *Params) Reset() { *m = Params{} } func (m *Params) Reset() { *m = Params{} }
@ -250,55 +250,55 @@ func init() {
} }
var fileDescriptor_bb8833f5d745eac9 = []byte{ var fileDescriptor_bb8833f5d745eac9 = []byte{
// 758 bytes of a gzipped FileDescriptorProto // 760 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x96, 0x4f, 0x4f, 0x13, 0x4f, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x96, 0x4f, 0x4f, 0x13, 0x4f,
0x18, 0xc7, 0xbb, 0xfd, 0x47, 0x19, 0xe0, 0xf7, 0x83, 0xa1, 0xa9, 0x6b, 0x35, 0x5b, 0x52, 0x8c, 0x18, 0xc7, 0xbb, 0xfd, 0x47, 0x19, 0xe0, 0xf7, 0x83, 0xa1, 0xa9, 0x6b, 0x35, 0x5b, 0x52, 0x8c,
0xd6, 0x10, 0x76, 0x45, 0x13, 0x0f, 0xde, 0x5c, 0xd1, 0xc4, 0x44, 0x12, 0xb2, 0x60, 0xa2, 0x5e, 0xd6, 0x10, 0x76, 0x45, 0x13, 0x0f, 0xde, 0x5c, 0xd1, 0xc4, 0x44, 0x12, 0xb2, 0x60, 0xa2, 0x5e,
0x9a, 0xe9, 0xee, 0xb0, 0x6c, 0xd8, 0xdd, 0xd9, 0xcc, 0x4c, 0x0b, 0x8d, 0x07, 0x13, 0x0f, 0xde, 0x9a, 0xe9, 0xee, 0xb0, 0x6c, 0xd8, 0xdd, 0xd9, 0xcc, 0x4c, 0x0b, 0x8d, 0x07, 0x13, 0x0f, 0xde,
0x4c, 0x88, 0x07, 0x5f, 0x04, 0x6f, 0xc3, 0x0b, 0x47, 0x8e, 0x46, 0x13, 0xd0, 0xf2, 0x46, 0xcc, 0x4c, 0x88, 0x07, 0x5f, 0x04, 0x6f, 0xc3, 0x0b, 0x47, 0x8e, 0x46, 0x13, 0xd0, 0xf2, 0x46, 0xcc,
0xcc, 0x2e, 0x74, 0x5b, 0x0b, 0x4a, 0xd2, 0x8b, 0xa7, 0xce, 0x9f, 0xe7, 0x79, 0x3e, 0xdf, 0xf9, 0xcc, 0x2e, 0x74, 0x5b, 0x0b, 0x4a, 0xd2, 0x8b, 0x27, 0x66, 0x9e, 0x79, 0x9e, 0xe7, 0xf3, 0x9d,
0x76, 0x9e, 0xc9, 0x82, 0xc5, 0x1d, 0xd4, 0x41, 0x86, 0x17, 0xda, 0x38, 0xe4, 0x5e, 0x07, 0x1b, 0x2f, 0xfb, 0x4c, 0x0a, 0x16, 0x77, 0x50, 0x07, 0x19, 0x5e, 0x68, 0xe3, 0x90, 0x7b, 0x1d, 0x6c,
0x9d, 0x95, 0x16, 0xe6, 0x68, 0xc5, 0x88, 0x10, 0x45, 0x01, 0xd3, 0x23, 0x4a, 0x38, 0x81, 0x15, 0x74, 0x56, 0x5a, 0x98, 0xa3, 0x15, 0x23, 0x42, 0x14, 0x05, 0x4c, 0x8f, 0x28, 0xe1, 0x04, 0x56,
0x11, 0xa4, 0x9f, 0x07, 0xe9, 0x49, 0x50, 0xb5, 0xec, 0x12, 0x97, 0xc8, 0x10, 0x43, 0x8c, 0xe2, 0x44, 0x92, 0x7e, 0x9e, 0xa4, 0x27, 0x49, 0xd5, 0xb2, 0x4b, 0x5c, 0x22, 0x53, 0x0c, 0xb1, 0x8a,
0xe8, 0x6a, 0xcd, 0x25, 0xc4, 0xf5, 0xb1, 0x21, 0x67, 0xad, 0xf6, 0x96, 0xc1, 0xbd, 0x00, 0x33, 0xb3, 0xab, 0x35, 0x97, 0x10, 0xd7, 0xc7, 0x86, 0xdc, 0xb5, 0xda, 0x5b, 0x06, 0xf7, 0x02, 0xcc,
0x8e, 0x82, 0x28, 0x09, 0xd0, 0x6c, 0xc2, 0x02, 0xc2, 0x8c, 0x16, 0x62, 0x7d, 0xa0, 0x4d, 0xbc, 0x38, 0x0a, 0xa2, 0x24, 0x41, 0xb3, 0x09, 0x0b, 0x08, 0x33, 0x5a, 0x88, 0xf5, 0x81, 0x36, 0xf1,
0x30, 0xde, 0xaf, 0x7f, 0xca, 0x82, 0x69, 0x0b, 0xef, 0x22, 0xea, 0xac, 0x63, 0xea, 0x11, 0x07, 0xc2, 0xf8, 0xbc, 0xfe, 0x29, 0x0b, 0xa6, 0x2d, 0xbc, 0x8b, 0xa8, 0xb3, 0x8e, 0xa9, 0x47, 0x1c,
0x56, 0x40, 0x11, 0xd9, 0x82, 0xac, 0x2a, 0x0b, 0x4a, 0xa3, 0x64, 0x25, 0x33, 0x78, 0x07, 0xfc, 0x58, 0x01, 0x45, 0x64, 0x0b, 0xb2, 0xaa, 0x2c, 0x28, 0x8d, 0x92, 0x95, 0xec, 0xe0, 0x1d, 0xf0,
0x6f, 0x13, 0xdf, 0x47, 0x1c, 0x53, 0xe4, 0x37, 0x79, 0x37, 0xc2, 0x6a, 0x76, 0x41, 0x69, 0x4c, 0xbf, 0x4d, 0x7c, 0x1f, 0x71, 0x4c, 0x91, 0xdf, 0xe4, 0xdd, 0x08, 0xab, 0xd9, 0x05, 0xa5, 0x31,
0x5a, 0xff, 0xf5, 0x97, 0x37, 0xbb, 0x11, 0x86, 0x8f, 0x40, 0x81, 0x71, 0x44, 0xb9, 0x9a, 0x5b, 0x69, 0xfd, 0xd7, 0x0f, 0x6f, 0x76, 0x23, 0x0c, 0x1f, 0x81, 0x02, 0xe3, 0x88, 0x72, 0x35, 0xb7,
0x50, 0x1a, 0x53, 0xf7, 0xab, 0x7a, 0x2c, 0x51, 0x3f, 0x93, 0xa8, 0x6f, 0x9e, 0x49, 0x34, 0x4b, 0xa0, 0x34, 0xa6, 0xee, 0x57, 0xf5, 0x58, 0xa2, 0x7e, 0x26, 0x51, 0xdf, 0x3c, 0x93, 0x68, 0x96,
0x87, 0xc7, 0xb5, 0xcc, 0xfe, 0x49, 0x4d, 0xb1, 0xe2, 0x14, 0xf8, 0x10, 0xe4, 0x70, 0xe8, 0xa8, 0x0e, 0x8f, 0x6b, 0x99, 0xfd, 0x93, 0x9a, 0x62, 0xc5, 0x25, 0xf0, 0x21, 0xc8, 0xe1, 0xd0, 0x51,
0xf9, 0x2b, 0x64, 0x8a, 0x04, 0xb8, 0x06, 0x20, 0x95, 0x87, 0x60, 0xcd, 0x08, 0xd3, 0x26, 0xc3, 0xf3, 0x57, 0xa8, 0x14, 0x05, 0x70, 0x0d, 0x40, 0x2a, 0x2f, 0xc1, 0x9a, 0x11, 0xa6, 0x4d, 0x86,
0x36, 0x09, 0x1d, 0xb5, 0x20, 0xcb, 0x5c, 0xd7, 0x63, 0x0b, 0x74, 0x61, 0xc1, 0x99, 0x9d, 0xfa, 0x6d, 0x12, 0x3a, 0x6a, 0x41, 0xb6, 0xb9, 0xae, 0xc7, 0x16, 0xe8, 0xc2, 0x82, 0x33, 0x3b, 0xf5,
0x13, 0xe2, 0x85, 0x66, 0x5e, 0x54, 0xb1, 0x66, 0x93, 0xd4, 0x75, 0x4c, 0x37, 0x64, 0x62, 0xfd, 0x27, 0xc4, 0x0b, 0xcd, 0xbc, 0xe8, 0x62, 0xcd, 0x26, 0xa5, 0xeb, 0x98, 0x6e, 0xc8, 0xc2, 0xfa,
0x4b, 0x16, 0xcc, 0xad, 0xb5, 0x7d, 0xee, 0xfd, 0xfb, 0xce, 0x74, 0x2f, 0x70, 0x26, 0x77, 0xb9, 0x97, 0x2c, 0x98, 0x5b, 0x6b, 0xfb, 0xdc, 0xfb, 0xf7, 0x9d, 0xe9, 0x5e, 0xe0, 0x4c, 0xee, 0x72,
0x33, 0xf7, 0x44, 0x95, 0x83, 0x93, 0x5a, 0xc3, 0xf5, 0xf8, 0x76, 0xbb, 0xa5, 0xdb, 0x24, 0x30, 0x67, 0xee, 0x89, 0x2e, 0x07, 0x27, 0xb5, 0x86, 0xeb, 0xf1, 0xed, 0x76, 0x4b, 0xb7, 0x49, 0x60,
0x92, 0x9b, 0x14, 0xff, 0x2c, 0x33, 0x67, 0xc7, 0x10, 0x67, 0x65, 0x32, 0x81, 0x8d, 0x70, 0xf1, 0x24, 0x5f, 0x52, 0xfc, 0x67, 0x99, 0x39, 0x3b, 0x86, 0xb8, 0x2b, 0x93, 0x05, 0x6c, 0x84, 0x8b,
0xa3, 0x02, 0x80, 0x74, 0x31, 0xf2, 0x3d, 0x4c, 0x21, 0x04, 0xf9, 0x10, 0x05, 0xb1, 0x79, 0x93, 0x1f, 0x15, 0x00, 0xa4, 0x8b, 0x91, 0xef, 0x61, 0x0a, 0x21, 0xc8, 0x87, 0x28, 0x88, 0xcd, 0x9b,
0x96, 0x1c, 0xc3, 0x45, 0x30, 0x13, 0x90, 0x90, 0x6f, 0xb3, 0xa6, 0x4f, 0xec, 0x9d, 0x76, 0x24, 0xb4, 0xe4, 0x1a, 0x2e, 0x82, 0x99, 0x80, 0x84, 0x7c, 0x9b, 0x35, 0x7d, 0x62, 0xef, 0xb4, 0x23,
0x8d, 0xcb, 0x59, 0xd3, 0xf1, 0xe2, 0x0b, 0xb9, 0x06, 0x9f, 0x81, 0xe2, 0x16, 0xb2, 0x39, 0xa1, 0x69, 0x5c, 0xce, 0x9a, 0x8e, 0x83, 0x2f, 0x64, 0x0c, 0x3e, 0x03, 0xc5, 0x2d, 0x64, 0x73, 0x42,
0xd2, 0xb7, 0x69, 0x53, 0x17, 0xda, 0xbe, 0x1d, 0xd7, 0x6e, 0xff, 0x85, 0xb6, 0x55, 0x6c, 0x5b, 0xa5, 0x6f, 0xd3, 0xa6, 0x2e, 0xb4, 0x7d, 0x3b, 0xae, 0xdd, 0xfe, 0x0b, 0x6d, 0xab, 0xd8, 0xb6,
0x49, 0x76, 0xfd, 0x83, 0x02, 0xe6, 0xfb, 0x7a, 0x84, 0xd0, 0x55, 0x1c, 0x92, 0x00, 0x96, 0x41, 0x92, 0xea, 0xfa, 0x07, 0x05, 0xcc, 0xf7, 0xf5, 0x08, 0xa1, 0xab, 0x38, 0x24, 0x01, 0x2c, 0x83,
0xc1, 0x11, 0x83, 0x44, 0x59, 0x3c, 0x81, 0xaf, 0xc1, 0x54, 0xd0, 0x0f, 0x56, 0xb3, 0xd2, 0xb1, 0x82, 0x23, 0x16, 0x89, 0xb2, 0x78, 0x03, 0x5f, 0x83, 0xa9, 0xa0, 0x9f, 0xac, 0x66, 0xa5, 0x63,
0xba, 0x3e, 0xba, 0x3b, 0xf5, 0x7e, 0x5d, 0x73, 0x3e, 0xb1, 0x6e, 0x2a, 0xc5, 0xb2, 0xd2, 0xb5, 0x75, 0x7d, 0xf4, 0x74, 0xea, 0xfd, 0xbe, 0xe6, 0x7c, 0x62, 0xdd, 0x54, 0x8a, 0x65, 0xa5, 0x7b,
0xea, 0xdf, 0x27, 0x40, 0x71, 0x5d, 0xf6, 0x3c, 0xfc, 0xac, 0x80, 0x1b, 0x6d, 0xe6, 0xec, 0x35, 0xd5, 0xbf, 0x4f, 0x80, 0xe2, 0xba, 0x9c, 0x79, 0xf8, 0x59, 0x01, 0x37, 0xda, 0xcc, 0xd9, 0x6b,
0x03, 0x2f, 0xe4, 0x5e, 0xe8, 0x36, 0x63, 0x17, 0xc5, 0x7f, 0xe5, 0x11, 0x87, 0xa9, 0x8a, 0xc4, 0x06, 0x5e, 0xc8, 0xbd, 0xd0, 0x6d, 0xc6, 0x2e, 0x8a, 0xff, 0x95, 0x47, 0x1c, 0xa6, 0x2a, 0x12,
0xde, 0xba, 0x08, 0x9b, 0xbe, 0x9f, 0xe6, 0x8a, 0x00, 0xf7, 0x8e, 0x6b, 0xea, 0xcb, 0x8d, 0xd5, 0x7b, 0xeb, 0x22, 0x6c, 0xfa, 0xfb, 0x34, 0x57, 0x04, 0xb8, 0x77, 0x5c, 0x53, 0x5f, 0x6e, 0xac,
0x57, 0x6b, 0x71, 0xbd, 0x74, 0x00, 0x3b, 0x38, 0xa9, 0xcd, 0x0c, 0x2c, 0x58, 0xaa, 0x60, 0x8f, 0xbe, 0x5a, 0x8b, 0xfb, 0xa5, 0x13, 0xd8, 0xc1, 0x49, 0x6d, 0x66, 0x20, 0x60, 0xa9, 0x82, 0x3d,
0x0a, 0x85, 0xef, 0x15, 0x50, 0xdd, 0x16, 0x4a, 0x58, 0x3b, 0x8a, 0xfc, 0xee, 0xb0, 0xae, 0xd8, 0x2a, 0x15, 0xbe, 0x57, 0x40, 0x75, 0x5b, 0x28, 0x61, 0xed, 0x28, 0xf2, 0xbb, 0xc3, 0xba, 0x62,
0x8e, 0xbb, 0x97, 0xda, 0x31, 0x20, 0xae, 0x9a, 0xb8, 0x02, 0x7f, 0xdb, 0x62, 0xd6, 0x35, 0x01, 0x3b, 0xee, 0x5e, 0x6a, 0xc7, 0x80, 0xb8, 0x6a, 0xe2, 0x0a, 0xfc, 0xed, 0x88, 0x59, 0xd7, 0x04,
0xda, 0x90, 0x9c, 0x0b, 0x44, 0xb4, 0x08, 0xa5, 0x64, 0x77, 0x58, 0x44, 0x6e, 0xec, 0x22, 0x4c, 0x68, 0x43, 0x72, 0x2e, 0x10, 0xd1, 0x22, 0x94, 0x92, 0xdd, 0x61, 0x11, 0xb9, 0xb1, 0x8b, 0x30,
0xc9, 0x19, 0x14, 0xf1, 0x0e, 0xa8, 0x0e, 0xf6, 0xb1, 0x8b, 0x38, 0xa1, 0xc3, 0x0a, 0xf2, 0xe3, 0x25, 0x67, 0x50, 0xc4, 0x3b, 0xa0, 0x3a, 0xd8, 0xc7, 0x2e, 0xe2, 0x84, 0x0e, 0x2b, 0xc8, 0x8f,
0x54, 0x50, 0x39, 0xc7, 0x0c, 0x0a, 0x68, 0x83, 0x79, 0xb6, 0x8b, 0xa2, 0x61, 0x76, 0x61, 0x9c, 0x53, 0x41, 0xe5, 0x1c, 0x33, 0x28, 0xa0, 0x0d, 0xe6, 0xd9, 0x2e, 0x8a, 0x86, 0xd9, 0x85, 0x71,
0xec, 0x39, 0x41, 0x18, 0xc4, 0xbe, 0x05, 0x15, 0x86, 0x3a, 0x5e, 0xe8, 0xb2, 0x61, 0x72, 0x71, 0xb2, 0xe7, 0x04, 0x61, 0x10, 0xdb, 0x01, 0x73, 0xb6, 0x8f, 0xbc, 0xa0, 0x99, 0x1e, 0x83, 0xa2,
0x9c, 0xe4, 0x72, 0x02, 0x19, 0x84, 0x77, 0xc0, 0x9c, 0xed, 0x23, 0x2f, 0x68, 0xa6, 0x7b, 0x70, 0x84, 0x2e, 0xfd, 0x79, 0x0c, 0xce, 0xc7, 0xcb, 0xbc, 0x99, 0x60, 0xcb, 0x23, 0x0e, 0x99, 0x35,
0x42, 0x72, 0x97, 0xfe, 0xdc, 0x83, 0xe7, 0xbd, 0x6d, 0xde, 0x4c, 0xc8, 0xe5, 0x11, 0x9b, 0xcc, 0x2b, 0x19, 0xa9, 0x23, 0xf8, 0x18, 0x4c, 0xc6, 0x5c, 0xf1, 0xde, 0x4d, 0x5c, 0xe1, 0xbd, 0x2b,
0x9a, 0x95, 0x8c, 0xd4, 0x16, 0x7c, 0x0c, 0x26, 0x63, 0xae, 0x78, 0x6c, 0x4b, 0x57, 0x78, 0x6c, 0xc9, 0xb2, 0xa7, 0xa1, 0x03, 0xdf, 0x82, 0x0a, 0x43, 0x1d, 0x2f, 0x74, 0xd9, 0xb0, 0x69, 0xa5,
0x4b, 0x32, 0xed, 0x69, 0xe8, 0x98, 0xcf, 0x0f, 0x7f, 0x6a, 0x99, 0xc3, 0x9e, 0xa6, 0x1c, 0xf5, 0x71, 0x9a, 0x56, 0x4e, 0x20, 0x03, 0x51, 0xf3, 0xf9, 0xe1, 0x4f, 0x2d, 0x73, 0xd8, 0xd3, 0x94,
0x34, 0xe5, 0x47, 0x4f, 0x53, 0xf6, 0x4f, 0xb5, 0xcc, 0xd1, 0xa9, 0x96, 0xf9, 0x7a, 0xaa, 0x65, 0xa3, 0x9e, 0xa6, 0xfc, 0xe8, 0x69, 0xca, 0xfe, 0xa9, 0x96, 0x39, 0x3a, 0xd5, 0x32, 0x5f, 0x4f,
0xde, 0x2c, 0xa5, 0x1e, 0x2d, 0x71, 0x8e, 0x65, 0x1f, 0xb5, 0x98, 0x1c, 0x19, 0x7b, 0xa9, 0x4f, 0xb5, 0xcc, 0x9b, 0xa5, 0xd4, 0xa3, 0x25, 0x44, 0x2c, 0xfb, 0xa8, 0xc5, 0xe4, 0xca, 0xd8, 0x4b,
0x03, 0xf9, 0x7a, 0xb5, 0x8a, 0x12, 0xf9, 0xe0, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x30, 0x0f, 0xfd, 0x34, 0x90, 0xaf, 0x57, 0xab, 0x28, 0xef, 0xfb, 0xe0, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff,
0x7e, 0x30, 0x39, 0x08, 0x00, 0x00, 0x8f, 0x22, 0xdc, 0x69, 0x39, 0x08, 0x00, 0x00,
} }
func (m *RewardPeriod) Marshal() (dAtA []byte, err error) { func (m *RewardPeriod) Marshal() (dAtA []byte, err error) {
@ -546,18 +546,10 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
n6, err6 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ClaimEnd, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ClaimEnd):]) if len(m.SavingsRewardPeriods) > 0 {
if err6 != nil { for iNdEx := len(m.SavingsRewardPeriods) - 1; iNdEx >= 0; iNdEx-- {
return 0, err6
}
i -= n6
i = encodeVarintParams(dAtA, i, uint64(n6))
i--
dAtA[i] = 0x42
if len(m.ClaimMultipliers) > 0 {
for iNdEx := len(m.ClaimMultipliers) - 1; iNdEx >= 0; iNdEx-- {
{ {
size, err := m.ClaimMultipliers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) size, err := m.SavingsRewardPeriods[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -565,13 +557,21 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i = encodeVarintParams(dAtA, i, uint64(size)) i = encodeVarintParams(dAtA, i, uint64(size))
} }
i-- i--
dAtA[i] = 0x3a dAtA[i] = 0x42
} }
} }
if len(m.SavingsRewardPeriods) > 0 { n6, err6 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ClaimEnd, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ClaimEnd):])
for iNdEx := len(m.SavingsRewardPeriods) - 1; iNdEx >= 0; iNdEx-- { if err6 != nil {
return 0, err6
}
i -= n6
i = encodeVarintParams(dAtA, i, uint64(n6))
i--
dAtA[i] = 0x3a
if len(m.ClaimMultipliers) > 0 {
for iNdEx := len(m.ClaimMultipliers) - 1; iNdEx >= 0; iNdEx-- {
{ {
size, err := m.SavingsRewardPeriods[iNdEx].MarshalToSizedBuffer(dAtA[:i]) size, err := m.ClaimMultipliers[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -787,12 +787,6 @@ func (m *Params) Size() (n int) {
n += 1 + l + sovParams(uint64(l)) n += 1 + l + sovParams(uint64(l))
} }
} }
if len(m.SavingsRewardPeriods) > 0 {
for _, e := range m.SavingsRewardPeriods {
l = e.Size()
n += 1 + l + sovParams(uint64(l))
}
}
if len(m.ClaimMultipliers) > 0 { if len(m.ClaimMultipliers) > 0 {
for _, e := range m.ClaimMultipliers { for _, e := range m.ClaimMultipliers {
l = e.Size() l = e.Size()
@ -801,6 +795,12 @@ func (m *Params) Size() (n int) {
} }
l = github_com_gogo_protobuf_types.SizeOfStdTime(m.ClaimEnd) l = github_com_gogo_protobuf_types.SizeOfStdTime(m.ClaimEnd)
n += 1 + l + sovParams(uint64(l)) n += 1 + l + sovParams(uint64(l))
if len(m.SavingsRewardPeriods) > 0 {
for _, e := range m.SavingsRewardPeriods {
l = e.Size()
n += 1 + l + sovParams(uint64(l))
}
}
return n return n
} }
@ -1663,40 +1663,6 @@ func (m *Params) Unmarshal(dAtA []byte) error {
} }
iNdEx = postIndex iNdEx = postIndex
case 6: case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field SavingsRewardPeriods", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowParams
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthParams
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthParams
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.SavingsRewardPeriods = append(m.SavingsRewardPeriods, MultiRewardPeriod{})
if err := m.SavingsRewardPeriods[len(m.SavingsRewardPeriods)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 7:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ClaimMultipliers", wireType) return fmt.Errorf("proto: wrong wireType = %d for field ClaimMultipliers", wireType)
} }
@ -1730,7 +1696,7 @@ func (m *Params) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 8: case 7:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ClaimEnd", wireType) return fmt.Errorf("proto: wrong wireType = %d for field ClaimEnd", wireType)
} }
@ -1763,6 +1729,40 @@ func (m *Params) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field SavingsRewardPeriods", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowParams
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthParams
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthParams
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.SavingsRewardPeriods = append(m.SavingsRewardPeriods, MultiRewardPeriod{})
if err := m.SavingsRewardPeriods[len(m.SavingsRewardPeriods)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipParams(dAtA[iNdEx:]) skippy, err := skipParams(dAtA[iNdEx:])