Add incentive RewardIndexes types and state methods (#1381)

* Add TypedRewardIndexes type

* Add RewardIndexes to genesis

* Update iteration method names, GetKeyFromSourceID method
This commit is contained in:
Derrick Lee 2022-11-04 17:08:51 -07:00 committed by GitHub
parent df1c2ffc34
commit 4a3002b09c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 851 additions and 126 deletions

View File

@ -317,6 +317,7 @@
- [RewardIndexesProto](#kava.incentive.v1beta1.RewardIndexesProto)
- [SavingsClaim](#kava.incentive.v1beta1.SavingsClaim)
- [SwapClaim](#kava.incentive.v1beta1.SwapClaim)
- [TypedRewardIndexes](#kava.incentive.v1beta1.TypedRewardIndexes)
- [USDXMintingClaim](#kava.incentive.v1beta1.USDXMintingClaim)
- [ClaimType](#kava.incentive.v1beta1.ClaimType)
@ -4619,6 +4620,24 @@ SwapClaim stores the swap rewards that can be claimed by owner
<a name="kava.incentive.v1beta1.TypedRewardIndexes"></a>
### TypedRewardIndexes
TypedRewardIndexes defines a RewardIndexes slice with its corresponding
claim and collateral type
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `claim_type` | [ClaimType](#kava.incentive.v1beta1.ClaimType) | | |
| `collateral_type` | [string](#string) | | |
| `reward_indexes` | [RewardIndex](#kava.incentive.v1beta1.RewardIndex) | repeated | |
<a name="kava.incentive.v1beta1.USDXMintingClaim"></a>
### USDXMintingClaim
@ -4854,6 +4873,7 @@ GenesisState is the state that must be provided at genesis.
| `earn_claims` | [EarnClaim](#kava.incentive.v1beta1.EarnClaim) | repeated | |
| `claims` | [Claim](#kava.incentive.v1beta1.Claim) | repeated | |
| `accrual_times` | [AccrualTime](#kava.incentive.v1beta1.AccrualTime) | repeated | |
| `reward_indexes` | [TypedRewardIndexes](#kava.incentive.v1beta1.TypedRewardIndexes) | repeated | |

View File

@ -45,6 +45,14 @@ message RewardIndexesProto {
repeated RewardIndex reward_indexes = 1 [(gogoproto.castrepeated) = "RewardIndexes", (gogoproto.nullable) = false];
}
// TypedRewardIndexes defines a RewardIndexes slice with its corresponding
// claim and collateral type
message TypedRewardIndexes {
ClaimType claim_type = 1;
string collateral_type = 2;
repeated RewardIndex reward_indexes = 3 [(gogoproto.castrepeated) = "RewardIndexes", (gogoproto.nullable) = false];
}
// MultiRewardIndex stores reward accumulation information on multiple reward types
message MultiRewardIndex {
string collateral_type = 1;

View File

@ -79,4 +79,7 @@ message GenesisState {
repeated Claim claims = 15 [(gogoproto.castrepeated) = "Claims", (gogoproto.nullable) = false];
repeated AccrualTime accrual_times = 16 [(gogoproto.castrepeated) = "AccrualTimes", (gogoproto.nullable) = false];
repeated TypedRewardIndexes reward_indexes = 17
[(gogoproto.castrepeated) = "TypedRewardIndexesList", (gogoproto.nullable) = false];
}

View File

@ -59,6 +59,11 @@ func InitGenesis(
)
}
// Set RewardIndexes of all types
for _, rewardIndex := range gs.RewardIndexes {
k.SetRewardIndexes(ctx, rewardIndex.ClaimType, rewardIndex.CollateralType, rewardIndex.RewardIndexes)
}
// Legacy claims and indexes below
// USDX Minting
@ -165,6 +170,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState {
claims := k.GetAllClaims(ctx)
accrualTimes := k.GetAllRewardAccrualTimes(ctx)
rewardIndexes := k.GetRewardIndexes(ctx)
usdxClaims := k.GetAllUSDXMintingClaims(ctx)
usdxRewardState := getUSDXMintingGenesisRewardState(ctx, k)
@ -192,6 +198,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState {
// Claims
claims, usdxClaims, hardClaims, delegatorClaims, swapClaims, savingsClaims, earnClaims,
accrualTimes,
rewardIndexes,
)
}

View File

@ -110,6 +110,7 @@ func (suite *GenesisTestSuite) SetupTest() {
types.DefaultSavingsClaims,
types.DefaultEarnClaims,
types.DefaultAccrualTimes,
types.DefaultTypedRewardIndexesList,
)
cdc := suite.app.AppCodec()
@ -286,6 +287,11 @@ func (suite *GenesisTestSuite) TestExportedGenesisMatchesImported() {
types.AccrualTimes{
types.NewAccrualTime(types.CLAIM_TYPE_USDX_MINTING, "usdx", genesisTime.Add(-2*time.Hour)),
},
types.TypedRewardIndexesList{
types.NewTypedRewardIndexes(types.CLAIM_TYPE_EARN, "ukava", types.RewardIndexes{
types.NewRewardIndex("ukava", d("0.1")),
}),
},
)
tApp := app.NewTestApp()

View File

@ -1067,3 +1067,91 @@ func (k Keeper) GetAllRewardAccrualTimes(ctx sdk.Context) types.AccrualTimes {
return ats
}
// SetRewardIndexes stores the global reward indexes that track total rewards of
// a given claim type and collateralType.
func (k Keeper) SetRewardIndexes(
ctx sdk.Context,
claimType types.ClaimType,
collateralType string,
indexes types.RewardIndexes,
) {
store := prefix.NewStore(ctx.KVStore(k.key), types.GetRewardIndexesKeyPrefix(claimType))
bz := k.cdc.MustMarshal(&types.TypedRewardIndexes{
ClaimType: claimType,
CollateralType: collateralType,
RewardIndexes: indexes,
})
store.Set(types.GetKeyFromSourceID(collateralType), bz)
}
// GetRewardIndexesOfClaimType fetches the global reward indexes that track total rewards
// of a given claimType and collateralType.
func (k Keeper) GetRewardIndexesOfClaimType(
ctx sdk.Context,
claimType types.ClaimType,
collateralType string,
) (types.RewardIndexes, bool) {
store := prefix.NewStore(ctx.KVStore(k.key), types.GetRewardIndexesKeyPrefix(claimType))
bz := store.Get(types.GetKeyFromSourceID(collateralType))
if bz == nil {
return types.RewardIndexes{}, false
}
var proto types.TypedRewardIndexes
k.cdc.MustUnmarshal(bz, &proto)
return proto.RewardIndexes, true
}
// IterateRewardIndexesByClaimType iterates over all reward index objects in the store of a
// given ClaimType and performs a callback function.
func (k Keeper) IterateRewardIndexesByClaimType(
ctx sdk.Context,
claimType types.ClaimType,
cb func(types.TypedRewardIndexes) (stop bool),
) {
store := prefix.NewStore(ctx.KVStore(k.key), types.GetRewardIndexesKeyPrefix(claimType))
iterator := sdk.KVStorePrefixIterator(store, []byte{})
defer iterator.Close()
for ; iterator.Valid(); iterator.Next() {
var typedRewardIndexes types.TypedRewardIndexes
k.cdc.MustUnmarshal(iterator.Value(), &typedRewardIndexes)
if cb(typedRewardIndexes) {
break
}
}
}
// IterateRewardIndexes iterates over all reward index objects in the store
// of all ClaimTypes and performs a callback function.
func (k Keeper) IterateRewardIndexes(
ctx sdk.Context,
cb func(types.TypedRewardIndexes) (stop bool),
) {
store := prefix.NewStore(ctx.KVStore(k.key), types.RewardIndexesKeyPrefix)
iterator := sdk.KVStorePrefixIterator(store, []byte{})
defer iterator.Close()
for ; iterator.Valid(); iterator.Next() {
var typedRewardIndexes types.TypedRewardIndexes
k.cdc.MustUnmarshal(iterator.Value(), &typedRewardIndexes)
if cb(typedRewardIndexes) {
break
}
}
}
// GetRewardIndexes returns all reward indexes of any claimType.
func (k Keeper) GetRewardIndexes(ctx sdk.Context) types.TypedRewardIndexesList {
var tril types.TypedRewardIndexesList
k.IterateRewardIndexes(
ctx,
func(typedRewardIndexes types.TypedRewardIndexes) bool {
tril = append(tril, typedRewardIndexes)
return false
},
)
return tril
}

View File

@ -142,6 +142,110 @@ func (suite *KeeperTestSuite) TestGetSetRewardAccrualTimes() {
}
}
func (suite *KeeperTestSuite) TestGetSetRewardIndexes() {
testCases := []struct {
name string
collateralType string
indexes types.RewardIndexes
wantIndex types.RewardIndexes
panics bool
}{
{
name: "two factors can be written and read",
collateralType: "btc/usdx",
indexes: types.RewardIndexes{
{
CollateralType: "hard",
RewardFactor: d("0.02"),
},
{
CollateralType: "ukava",
RewardFactor: d("0.04"),
},
},
wantIndex: types.RewardIndexes{
{
CollateralType: "hard",
RewardFactor: d("0.02"),
},
{
CollateralType: "ukava",
RewardFactor: d("0.04"),
},
},
},
{
name: "indexes with empty pool name panics",
collateralType: "",
indexes: types.RewardIndexes{
{
CollateralType: "hard",
RewardFactor: d("0.02"),
},
{
CollateralType: "ukava",
RewardFactor: d("0.04"),
},
},
panics: true,
},
{
// this test is to detect any changes in behavior
name: "setting empty indexes does not panic",
collateralType: "btc/usdx",
// Marshalling empty slice results in [] bytes, unmarshalling the []
// empty bytes results in a nil slice instead of an empty slice
indexes: types.RewardIndexes{},
wantIndex: nil,
panics: false,
},
{
// this test is to detect any changes in behavior
name: "setting nil indexes does not panic",
collateralType: "btc/usdx",
indexes: nil,
wantIndex: nil,
panics: false,
},
}
for _, tc := range testCases {
suite.Run(tc.name, func() {
suite.SetupApp()
_, found := suite.keeper.GetRewardIndexesOfClaimType(suite.ctx, types.CLAIM_TYPE_SWAP, tc.collateralType)
suite.False(found)
setFunc := func() {
suite.keeper.SetRewardIndexes(suite.ctx, types.CLAIM_TYPE_SWAP, tc.collateralType, tc.indexes)
}
if tc.panics {
suite.Panics(setFunc)
return
} else {
suite.NotPanics(setFunc)
}
storedIndexes, found := suite.keeper.GetRewardIndexesOfClaimType(suite.ctx, types.CLAIM_TYPE_SWAP, tc.collateralType)
suite.True(found)
suite.Equal(tc.wantIndex, storedIndexes)
for _, otherClaimTypeValue := range types.ClaimType_value {
// Skip swap
if types.ClaimType(otherClaimTypeValue) == types.CLAIM_TYPE_SWAP {
continue
}
otherClaimType := types.ClaimType(otherClaimTypeValue)
// Other claim types should not be affected
_, found := suite.keeper.GetRewardIndexesOfClaimType(suite.ctx, otherClaimType, tc.collateralType)
suite.False(found)
}
})
}
}
func (suite *KeeperTestSuite) TestIterateRewardAccrualTimes() {
suite.SetupApp()
@ -196,3 +300,128 @@ func (suite *KeeperTestSuite) TestIterateAllRewardAccrualTimes() {
suite.ElementsMatch(expectedAccrualTimes, actualAccrualTimes)
}
func (suite *KeeperTestSuite) TestIterateRewardIndexes() {
suite.SetupApp()
swapMultiIndexes := types.MultiRewardIndexes{
{
CollateralType: "bnb",
RewardIndexes: types.RewardIndexes{
{
CollateralType: "swap",
RewardFactor: d("0.0000002"),
},
{
CollateralType: "ukava",
RewardFactor: d("0.04"),
},
},
},
{
CollateralType: "btcb",
RewardIndexes: types.RewardIndexes{
{
CollateralType: "hard",
RewardFactor: d("0.02"),
},
},
},
}
earnMultiIndexes := types.MultiRewardIndexes{
{
CollateralType: "usdc",
RewardIndexes: types.RewardIndexes{
{
CollateralType: "usdc",
RewardFactor: d("0.0000002"),
},
{
CollateralType: "ukava",
RewardFactor: d("0.04"),
},
},
},
{
CollateralType: "ukava",
RewardIndexes: types.RewardIndexes{
{
CollateralType: "ukava",
RewardFactor: d("0.02"),
},
},
},
}
for _, mi := range swapMultiIndexes {
suite.keeper.SetRewardIndexes(suite.ctx, types.CLAIM_TYPE_SWAP, mi.CollateralType, mi.RewardIndexes)
}
for _, mi := range earnMultiIndexes {
// These should be excluded when iterating over swap indexes
suite.keeper.SetRewardIndexes(suite.ctx, types.CLAIM_TYPE_EARN, mi.CollateralType, mi.RewardIndexes)
}
actualMultiIndexesMap := make(map[types.ClaimType]types.MultiRewardIndexes)
suite.keeper.IterateRewardIndexesByClaimType(suite.ctx, types.CLAIM_TYPE_SWAP, func(rewardIndex types.TypedRewardIndexes) bool {
actualMultiIndexesMap[rewardIndex.ClaimType] = actualMultiIndexesMap[rewardIndex.ClaimType].With(rewardIndex.CollateralType, rewardIndex.RewardIndexes)
return false
})
suite.Require().Len(actualMultiIndexesMap, 1, "iteration should only include 1 claim type")
suite.Require().Equal(swapMultiIndexes, actualMultiIndexesMap[types.CLAIM_TYPE_SWAP])
}
func (suite *KeeperTestSuite) TestIterateAllRewardIndexes() {
suite.SetupApp()
multiIndexes := types.MultiRewardIndexes{
{
CollateralType: "ukava",
RewardIndexes: types.RewardIndexes{
{
CollateralType: "swap",
RewardFactor: d("0.0000002"),
},
{
CollateralType: "ukava",
RewardFactor: d("0.04"),
},
},
},
{
CollateralType: "usdc",
RewardIndexes: types.RewardIndexes{
{
CollateralType: "hard",
RewardFactor: d("0.02"),
},
},
},
}
for _, claimTypeValue := range types.ClaimType_value {
if types.ClaimType(claimTypeValue) == types.CLAIM_TYPE_UNSPECIFIED {
continue
}
claimType := types.ClaimType(claimTypeValue)
for _, mi := range multiIndexes {
suite.keeper.SetRewardIndexes(suite.ctx, claimType, mi.CollateralType, mi.RewardIndexes)
}
}
actualMultiIndexesMap := make(map[types.ClaimType]types.MultiRewardIndexes)
suite.keeper.IterateRewardIndexes(suite.ctx, func(rewardIndex types.TypedRewardIndexes) bool {
actualMultiIndexesMap[rewardIndex.ClaimType] = actualMultiIndexesMap[rewardIndex.ClaimType].With(rewardIndex.CollateralType, rewardIndex.RewardIndexes)
return false
})
// -1 to exclude the unspecified type
suite.Require().Len(actualMultiIndexesMap, len(types.ClaimType_value)-1)
for claimType, actualMultiIndexes := range actualMultiIndexesMap {
suite.Require().NoError(claimType.Validate())
suite.Require().Equal(multiIndexes, actualMultiIndexes)
}
}

View File

@ -700,3 +700,51 @@ func (mris MultiRewardIndexes) copy() MultiRewardIndexes {
copy(newIndexes, mris)
return newIndexes
}
// NewTypedRewardIndexes returns a new TypedRewardIndexes
func NewTypedRewardIndexes(
claimType ClaimType,
collateralType string,
rewardIndexes RewardIndexes,
) TypedRewardIndexes {
return TypedRewardIndexes{
ClaimType: claimType,
CollateralType: collateralType,
RewardIndexes: rewardIndexes,
}
}
// Validate performs a basic check of a TypedRewardIndexes fields
func (tril TypedRewardIndexes) Validate() error {
if err := tril.ClaimType.Validate(); err != nil {
return err
}
if tril.CollateralType == "" {
return errors.New("collateral type cannot be empty")
}
return tril.RewardIndexes.Validate()
}
// TypedRewardIndexesList is a list of TypedRewardIndexes
type TypedRewardIndexesList []TypedRewardIndexes
// Validate validates a slice of TypedRewardIndexesList
func (tril TypedRewardIndexesList) Validate() error {
seen := make(map[string]bool)
for _, tri := range tril {
if err := tri.Validate(); err != nil {
return err
}
// Composite key of claim type and collateral type
key := fmt.Sprintf("%s/%s", tri.ClaimType, tri.CollateralType)
if seen[key] {
return fmt.Errorf("duplicate TypedRewardIndexes found: %s", key)
}
seen[key] = true
}
return nil
}

View File

@ -233,6 +233,47 @@ func (m *RewardIndexesProto) XXX_DiscardUnknown() {
var xxx_messageInfo_RewardIndexesProto proto.InternalMessageInfo
// TypedRewardIndexes defines a RewardIndexes slice with its corresponding
// claim and collateral type
type TypedRewardIndexes struct {
ClaimType ClaimType `protobuf:"varint,1,opt,name=claim_type,json=claimType,proto3,enum=kava.incentive.v1beta1.ClaimType" json:"claim_type,omitempty"`
CollateralType string `protobuf:"bytes,2,opt,name=collateral_type,json=collateralType,proto3" json:"collateral_type,omitempty"`
RewardIndexes RewardIndexes `protobuf:"bytes,3,rep,name=reward_indexes,json=rewardIndexes,proto3,castrepeated=RewardIndexes" json:"reward_indexes"`
}
func (m *TypedRewardIndexes) Reset() { *m = TypedRewardIndexes{} }
func (m *TypedRewardIndexes) String() string { return proto.CompactTextString(m) }
func (*TypedRewardIndexes) ProtoMessage() {}
func (*TypedRewardIndexes) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{4}
}
func (m *TypedRewardIndexes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *TypedRewardIndexes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_TypedRewardIndexes.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *TypedRewardIndexes) XXX_Merge(src proto.Message) {
xxx_messageInfo_TypedRewardIndexes.Merge(m, src)
}
func (m *TypedRewardIndexes) XXX_Size() int {
return m.Size()
}
func (m *TypedRewardIndexes) XXX_DiscardUnknown() {
xxx_messageInfo_TypedRewardIndexes.DiscardUnknown(m)
}
var xxx_messageInfo_TypedRewardIndexes proto.InternalMessageInfo
// MultiRewardIndex stores reward accumulation information on multiple reward types
type MultiRewardIndex struct {
CollateralType string `protobuf:"bytes,1,opt,name=collateral_type,json=collateralType,proto3" json:"collateral_type,omitempty"`
@ -243,7 +284,7 @@ func (m *MultiRewardIndex) Reset() { *m = MultiRewardIndex{} }
func (m *MultiRewardIndex) String() string { return proto.CompactTextString(m) }
func (*MultiRewardIndex) ProtoMessage() {}
func (*MultiRewardIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{4}
return fileDescriptor_5f7515029623a895, []int{5}
}
func (m *MultiRewardIndex) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -281,7 +322,7 @@ func (m *MultiRewardIndexesProto) Reset() { *m = MultiRewardIndexesProto
func (m *MultiRewardIndexesProto) String() string { return proto.CompactTextString(m) }
func (*MultiRewardIndexesProto) ProtoMessage() {}
func (*MultiRewardIndexesProto) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{5}
return fileDescriptor_5f7515029623a895, []int{6}
}
func (m *MultiRewardIndexesProto) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -320,7 +361,7 @@ func (m *USDXMintingClaim) Reset() { *m = USDXMintingClaim{} }
func (m *USDXMintingClaim) String() string { return proto.CompactTextString(m) }
func (*USDXMintingClaim) ProtoMessage() {}
func (*USDXMintingClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{6}
return fileDescriptor_5f7515029623a895, []int{7}
}
func (m *USDXMintingClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -360,7 +401,7 @@ func (m *HardLiquidityProviderClaim) Reset() { *m = HardLiquidityProvide
func (m *HardLiquidityProviderClaim) String() string { return proto.CompactTextString(m) }
func (*HardLiquidityProviderClaim) ProtoMessage() {}
func (*HardLiquidityProviderClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{7}
return fileDescriptor_5f7515029623a895, []int{8}
}
func (m *HardLiquidityProviderClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -399,7 +440,7 @@ func (m *DelegatorClaim) Reset() { *m = DelegatorClaim{} }
func (m *DelegatorClaim) String() string { return proto.CompactTextString(m) }
func (*DelegatorClaim) ProtoMessage() {}
func (*DelegatorClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{8}
return fileDescriptor_5f7515029623a895, []int{9}
}
func (m *DelegatorClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -438,7 +479,7 @@ func (m *SwapClaim) Reset() { *m = SwapClaim{} }
func (m *SwapClaim) String() string { return proto.CompactTextString(m) }
func (*SwapClaim) ProtoMessage() {}
func (*SwapClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{9}
return fileDescriptor_5f7515029623a895, []int{10}
}
func (m *SwapClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -477,7 +518,7 @@ func (m *SavingsClaim) Reset() { *m = SavingsClaim{} }
func (m *SavingsClaim) String() string { return proto.CompactTextString(m) }
func (*SavingsClaim) ProtoMessage() {}
func (*SavingsClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{10}
return fileDescriptor_5f7515029623a895, []int{11}
}
func (m *SavingsClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -516,7 +557,7 @@ func (m *EarnClaim) Reset() { *m = EarnClaim{} }
func (m *EarnClaim) String() string { return proto.CompactTextString(m) }
func (*EarnClaim) ProtoMessage() {}
func (*EarnClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{11}
return fileDescriptor_5f7515029623a895, []int{12}
}
func (m *EarnClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -557,7 +598,7 @@ func (m *Claim) Reset() { *m = Claim{} }
func (m *Claim) String() string { return proto.CompactTextString(m) }
func (*Claim) ProtoMessage() {}
func (*Claim) Descriptor() ([]byte, []int) {
return fileDescriptor_5f7515029623a895, []int{12}
return fileDescriptor_5f7515029623a895, []int{13}
}
func (m *Claim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -592,6 +633,7 @@ func init() {
proto.RegisterType((*BaseMultiClaim)(nil), "kava.incentive.v1beta1.BaseMultiClaim")
proto.RegisterType((*RewardIndex)(nil), "kava.incentive.v1beta1.RewardIndex")
proto.RegisterType((*RewardIndexesProto)(nil), "kava.incentive.v1beta1.RewardIndexesProto")
proto.RegisterType((*TypedRewardIndexes)(nil), "kava.incentive.v1beta1.TypedRewardIndexes")
proto.RegisterType((*MultiRewardIndex)(nil), "kava.incentive.v1beta1.MultiRewardIndex")
proto.RegisterType((*MultiRewardIndexesProto)(nil), "kava.incentive.v1beta1.MultiRewardIndexesProto")
proto.RegisterType((*USDXMintingClaim)(nil), "kava.incentive.v1beta1.USDXMintingClaim")
@ -608,61 +650,63 @@ func init() {
}
var fileDescriptor_5f7515029623a895 = []byte{
// 849 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x57, 0x4d, 0x6f, 0xf3, 0x44,
0x10, 0xce, 0x26, 0x69, 0x21, 0xdb, 0xbc, 0xa9, 0xe5, 0x7e, 0xa5, 0x41, 0x72, 0x4a, 0x2a, 0x95,
0x08, 0x14, 0x87, 0x16, 0x21, 0xce, 0x76, 0x92, 0xb6, 0x46, 0xf9, 0x92, 0x9d, 0xd2, 0x96, 0x03,
0xd6, 0xc6, 0x5e, 0x82, 0x55, 0xc7, 0x1b, 0x6c, 0x27, 0x69, 0xfe, 0x01, 0x12, 0x17, 0xf8, 0x03,
0x5c, 0xe0, 0xc4, 0x99, 0x3f, 0xc0, 0xad, 0x48, 0x08, 0x55, 0x48, 0x48, 0x88, 0x43, 0xa0, 0xed,
0x1f, 0xe0, 0xcc, 0x09, 0xf9, 0xa3, 0xa9, 0x9b, 0x26, 0x55, 0xf5, 0x2a, 0xe9, 0xa1, 0xa7, 0xec,
0xce, 0x8c, 0xe7, 0x79, 0xe6, 0x99, 0xf1, 0x7a, 0x03, 0xb7, 0xcf, 0x50, 0x0f, 0xe5, 0x35, 0x43,
0xc1, 0x86, 0xad, 0xf5, 0x70, 0xbe, 0xb7, 0xdb, 0xc4, 0x36, 0xda, 0xcd, 0x2b, 0x3a, 0xd2, 0xda,
0x16, 0xdb, 0x31, 0x89, 0x4d, 0xe8, 0x75, 0x27, 0x88, 0x1d, 0x05, 0xb1, 0x7e, 0x50, 0x6a, 0xb5,
0x45, 0x5a, 0xc4, 0x0d, 0xc9, 0x3b, 0x2b, 0x2f, 0x3a, 0xb5, 0xa9, 0x10, 0xab, 0x4d, 0x2c, 0xd9,
0x73, 0x78, 0x1b, 0xdf, 0xc5, 0x78, 0xbb, 0x7c, 0x13, 0x59, 0x01, 0x28, 0xa2, 0x19, 0x9e, 0x3f,
0xf3, 0x03, 0x80, 0x31, 0x1e, 0x59, 0xb8, 0xe0, 0xa0, 0xd3, 0x9f, 0xc1, 0x05, 0xd2, 0x37, 0xb0,
0x99, 0x04, 0x5b, 0x20, 0x1b, 0xe7, 0x0f, 0xff, 0x1b, 0xa6, 0x73, 0x2d, 0xcd, 0xfe, 0xa2, 0xdb,
0x64, 0x15, 0xd2, 0xf6, 0x33, 0xfb, 0x3f, 0x39, 0x4b, 0x3d, 0xcb, 0xdb, 0x83, 0x0e, 0xb6, 0x58,
0x4e, 0x51, 0x38, 0x55, 0x35, 0xb1, 0x65, 0xfd, 0xfe, 0x53, 0x6e, 0xc5, 0xc7, 0xf7, 0x2d, 0xfc,
0xc0, 0xc6, 0x96, 0xe8, 0xa5, 0xa5, 0x3f, 0x82, 0x8b, 0x26, 0xee, 0x23, 0x53, 0x4d, 0x86, 0xb7,
0x40, 0x76, 0x69, 0x6f, 0x93, 0xf5, 0x83, 0x1d, 0x7a, 0xb7, 0x45, 0xb2, 0x05, 0xa2, 0x19, 0x7c,
0xf4, 0x62, 0x98, 0x0e, 0x89, 0x7e, 0x78, 0xe6, 0x0f, 0x00, 0x13, 0x0e, 0xcd, 0x4a, 0x57, 0xb7,
0xb5, 0xe7, 0xe1, 0xaa, 0x04, 0xb8, 0x46, 0x1e, 0xe7, 0xfa, 0xbe, 0xc3, 0xf5, 0xc7, 0xbf, 0xd3,
0xd9, 0x27, 0xe0, 0x3b, 0x0f, 0x58, 0xa3, 0xba, 0xbe, 0x06, 0x70, 0x49, 0x74, 0x97, 0x82, 0xa1,
0xe2, 0x73, 0xfa, 0x1d, 0xb8, 0xac, 0x10, 0x5d, 0x47, 0x36, 0x36, 0x91, 0x2e, 0x3b, 0x4f, 0xb8,
0xe5, 0xc5, 0xc4, 0xc4, 0x9d, 0xb9, 0x31, 0xe8, 0x60, 0x5a, 0x82, 0xaf, 0xbc, 0x14, 0xf2, 0xe7,
0x48, 0xb1, 0x89, 0xe9, 0x0a, 0x1a, 0xe7, 0x59, 0x87, 0xc9, 0x5f, 0xc3, 0xf4, 0xce, 0x13, 0x98,
0x14, 0xb1, 0x22, 0xc6, 0xbd, 0x24, 0xfb, 0x6e, 0x8e, 0x4c, 0x1f, 0xd2, 0x01, 0x32, 0xd8, 0xaa,
0xbb, 0xb3, 0x88, 0x60, 0xc2, 0x87, 0xd2, 0x3c, 0x73, 0x12, 0xb8, 0x82, 0x6c, 0xb3, 0x93, 0x87,
0x94, 0x0d, 0xe4, 0xe0, 0xd7, 0x7c, 0x69, 0x5e, 0xdd, 0x4b, 0x2c, 0xfa, 0xe4, 0xfd, 0x6d, 0xe6,
0x3b, 0x00, 0x29, 0xb7, 0xb5, 0xaf, 0xa5, 0xc5, 0x43, 0x82, 0xe1, 0x59, 0x13, 0xfc, 0x16, 0xc0,
0x8d, 0x71, 0x82, 0xb7, 0xfa, 0xf4, 0xe0, 0x6a, 0xdb, 0x71, 0xc9, 0x13, 0x55, 0xca, 0x4e, 0x23,
0x31, 0x9e, 0x8e, 0x4f, 0xf9, 0x4c, 0xe8, 0x87, 0x40, 0x22, 0xdd, 0x7e, 0x60, 0xcb, 0xfc, 0x0c,
0x20, 0x75, 0x24, 0x15, 0x4f, 0x2a, 0x9a, 0x61, 0x6b, 0x46, 0xcb, 0x7b, 0x2b, 0x3e, 0x86, 0xd0,
0x99, 0x4f, 0xd9, 0x3d, 0x4d, 0x5c, 0xbd, 0x96, 0xf6, 0xde, 0x9e, 0x46, 0x61, 0xf4, 0xe2, 0xf3,
0x6f, 0x3a, 0xd8, 0x97, 0xc3, 0x34, 0x10, 0x63, 0xcd, 0xd1, 0x69, 0xf0, 0x0c, 0xba, 0x5e, 0x85,
0x61, 0xea, 0x10, 0x99, 0x6a, 0x59, 0xfb, 0xb2, 0xab, 0xa9, 0x9a, 0x3d, 0xa8, 0x9b, 0xa4, 0xa7,
0xa9, 0xd8, 0xf4, 0x18, 0xd4, 0x26, 0x54, 0xb3, 0xf3, 0x58, 0x35, 0x77, 0xe7, 0xc3, 0xe4, 0x92,
0xce, 0xe1, 0x9a, 0xd5, 0xed, 0x74, 0xf4, 0x81, 0x3c, 0xb1, 0xb2, 0xd9, 0x34, 0x6b, 0xc5, 0x83,
0xb8, 0x67, 0x74, 0x90, 0x9b, 0xc4, 0x34, 0x49, 0x7f, 0x1c, 0x39, 0x32, 0x4b, 0x64, 0x0f, 0xe2,
0xfe, 0x9c, 0xfc, 0x06, 0x60, 0xa2, 0x88, 0x75, 0xdc, 0x42, 0x36, 0x99, 0x97, 0xae, 0x67, 0x53,
0x46, 0x65, 0x36, 0x65, 0x8d, 0x0d, 0xcd, 0x2f, 0x00, 0xc6, 0xa4, 0x3e, 0xea, 0xbc, 0x84, 0x5a,
0x7e, 0x05, 0x30, 0x2e, 0xa1, 0x9e, 0x66, 0xb4, 0xac, 0x97, 0xd2, 0x9a, 0x12, 0x32, 0x8d, 0x97,
0x50, 0xcb, 0xbf, 0x61, 0xb8, 0xe0, 0xc1, 0x7e, 0x08, 0xa3, 0xa3, 0xcf, 0x4f, 0x62, 0xfa, 0x71,
0xea, 0x06, 0x3b, 0x5f, 0x24, 0xd1, 0x0d, 0xbf, 0xbb, 0xa1, 0x84, 0xe7, 0x7d, 0x43, 0x89, 0xcc,
0xed, 0x86, 0x32, 0x41, 0xf2, 0xe8, 0xdc, 0x24, 0x7f, 0x77, 0x08, 0x60, 0x6c, 0xa4, 0x22, 0x9d,
0x82, 0xeb, 0x85, 0x32, 0x27, 0x54, 0xe4, 0xc6, 0x69, 0xbd, 0x24, 0x1f, 0x55, 0xa5, 0x7a, 0xa9,
0x20, 0xec, 0x0b, 0xa5, 0x22, 0x15, 0x1a, 0xf3, 0x1d, 0x72, 0x62, 0x51, 0xe6, 0x6b, 0xa2, 0x58,
0x3b, 0xa6, 0xc0, 0x24, 0x9f, 0x74, 0x54, 0xaf, 0x97, 0x4f, 0xa9, 0x30, 0x9d, 0x84, 0xab, 0x01,
0x5f, 0xb1, 0x54, 0x2e, 0x1d, 0x70, 0x8d, 0x9a, 0x48, 0x45, 0xe8, 0x15, 0xb8, 0x1c, 0xf0, 0x94,
0x38, 0xb1, 0x4a, 0x45, 0xe9, 0x75, 0x48, 0x07, 0x8c, 0x12, 0xf7, 0x89, 0x50, 0x3d, 0x90, 0xa8,
0x85, 0xb1, 0x60, 0xe9, 0x98, 0xab, 0x53, 0x8b, 0xf4, 0x5b, 0x70, 0x23, 0xc8, 0x57, 0x2a, 0x9e,
0xc8, 0x15, 0xa1, 0xda, 0x10, 0xaa, 0x07, 0xd4, 0x1b, 0xa9, 0xe8, 0x57, 0xdf, 0x33, 0x21, 0x5e,
0xb8, 0xb8, 0x62, 0x42, 0x17, 0xd7, 0x0c, 0xb8, 0xbc, 0x66, 0xc0, 0x3f, 0xd7, 0x0c, 0xf8, 0xe6,
0x86, 0x09, 0x5d, 0xde, 0x30, 0xa1, 0x3f, 0x6f, 0x98, 0xd0, 0xa7, 0xef, 0x05, 0xba, 0xe3, 0xa8,
0x9b, 0xd3, 0x51, 0xd3, 0x72, 0x57, 0xf9, 0xf3, 0xc0, 0x3f, 0x06, 0xb7, 0x4d, 0xcd, 0x45, 0xf7,
0x02, 0xff, 0xc1, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x35, 0x3f, 0x49, 0x50, 0x0c, 0x00,
0x00,
// 885 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x57, 0x4f, 0x6f, 0xe3, 0x44,
0x14, 0xcf, 0xa4, 0x69, 0x21, 0xaf, 0xdd, 0xac, 0x35, 0xfd, 0xb3, 0xdd, 0x20, 0x39, 0x4b, 0x56,
0x5a, 0x2a, 0x50, 0x1d, 0x76, 0x11, 0xe2, 0x8a, 0xdd, 0x64, 0x5b, 0xa3, 0x36, 0x8d, 0xec, 0x96,
0xdd, 0xe5, 0x80, 0x35, 0xb1, 0x87, 0x60, 0xd5, 0xf1, 0x04, 0xdb, 0x4d, 0x9a, 0x6f, 0x80, 0xc4,
0x05, 0xbe, 0x00, 0x17, 0x38, 0x71, 0xe6, 0x0b, 0x70, 0x2b, 0x12, 0x42, 0x15, 0x12, 0x12, 0xe2,
0x10, 0xd8, 0xf6, 0x0b, 0x70, 0xe6, 0x84, 0x3c, 0x76, 0x53, 0x37, 0x75, 0x56, 0xcb, 0x2a, 0xe9,
0xa1, 0xa7, 0x8c, 0xe7, 0x3d, 0xbf, 0xdf, 0x9f, 0xf7, 0xc6, 0xb1, 0xe1, 0xfe, 0x01, 0xe9, 0x92,
0x8a, 0xed, 0x9a, 0xd4, 0x0d, 0xec, 0x2e, 0xad, 0x74, 0x1f, 0x36, 0x69, 0x40, 0x1e, 0x56, 0x4c,
0x87, 0xd8, 0x6d, 0x5f, 0xea, 0x78, 0x2c, 0x60, 0x78, 0x25, 0x4c, 0x92, 0x86, 0x49, 0x52, 0x9c,
0x54, 0x5c, 0x6a, 0xb1, 0x16, 0xe3, 0x29, 0x95, 0x70, 0x15, 0x65, 0x17, 0xef, 0x9a, 0xcc, 0x6f,
0x33, 0xdf, 0x88, 0x02, 0xd1, 0x45, 0x1c, 0x12, 0xa3, 0xab, 0x4a, 0x93, 0xf8, 0x09, 0x28, 0x66,
0xbb, 0x51, 0xbc, 0xfc, 0x3d, 0x82, 0xbc, 0x42, 0x7c, 0xba, 0x11, 0xa2, 0xe3, 0x4f, 0x61, 0x96,
0xf5, 0x5c, 0xea, 0xad, 0xa2, 0x7b, 0x68, 0x6d, 0x41, 0xd9, 0xfa, 0x77, 0x50, 0x5a, 0x6f, 0xd9,
0xc1, 0xe7, 0x87, 0x4d, 0xc9, 0x64, 0xed, 0xb8, 0x72, 0xfc, 0xb3, 0xee, 0x5b, 0x07, 0x95, 0xa0,
0xdf, 0xa1, 0xbe, 0x24, 0x9b, 0xa6, 0x6c, 0x59, 0x1e, 0xf5, 0xfd, 0xdf, 0x7e, 0x5c, 0x5f, 0x8c,
0xf1, 0xe3, 0x1d, 0xa5, 0x1f, 0x50, 0x5f, 0x8b, 0xca, 0xe2, 0x0f, 0x60, 0xce, 0xa3, 0x3d, 0xe2,
0x59, 0xab, 0xd9, 0x7b, 0x68, 0x6d, 0xfe, 0xd1, 0x5d, 0x29, 0x4e, 0x0e, 0xe9, 0x9d, 0x8b, 0x94,
0x36, 0x98, 0xed, 0x2a, 0xb9, 0xe3, 0x41, 0x29, 0xa3, 0xc5, 0xe9, 0xe5, 0xdf, 0x11, 0x14, 0x42,
0x9a, 0x3b, 0x87, 0x4e, 0x60, 0x5f, 0x0f, 0x57, 0x33, 0xc1, 0x75, 0xe6, 0xc5, 0x5c, 0xdf, 0x0d,
0xb9, 0xfe, 0xf0, 0x57, 0x69, 0xed, 0x25, 0xf0, 0xc3, 0x1b, 0xfc, 0xa1, 0xae, 0xaf, 0x10, 0xcc,
0x6b, 0x7c, 0xa9, 0xba, 0x16, 0x3d, 0xc2, 0x6f, 0xc1, 0x6d, 0x93, 0x39, 0x0e, 0x09, 0xa8, 0x47,
0x1c, 0x23, 0xbc, 0x83, 0xcb, 0xcb, 0x6b, 0x85, 0x8b, 0xed, 0xbd, 0x7e, 0x87, 0x62, 0x1d, 0x6e,
0x45, 0x25, 0x8c, 0xcf, 0x88, 0x19, 0x30, 0x8f, 0x1b, 0xba, 0xa0, 0x48, 0x21, 0x93, 0x3f, 0x07,
0xa5, 0x07, 0x2f, 0xc1, 0xa4, 0x4a, 0x4d, 0x6d, 0x21, 0x2a, 0xf2, 0x98, 0xd7, 0x28, 0xf7, 0x00,
0x27, 0xc8, 0x50, 0xbf, 0xc1, 0x67, 0x91, 0x40, 0x21, 0x86, 0xb2, 0xa3, 0xed, 0x55, 0xc4, 0x0d,
0xb9, 0x2f, 0xa5, 0x0f, 0xa9, 0x94, 0xa8, 0xa1, 0x2c, 0xc7, 0xd6, 0xdc, 0xba, 0x54, 0x58, 0x8b,
0xc9, 0xc7, 0x97, 0xe5, 0x53, 0x04, 0x38, 0x94, 0x65, 0x5d, 0xca, 0xc2, 0x1f, 0x02, 0xf0, 0x53,
0x71, 0x61, 0x44, 0xe1, 0xd1, 0x9b, 0xe3, 0x50, 0xf9, 0x54, 0x84, 0x45, 0xb4, 0xbc, 0x79, 0xbe,
0x4c, 0xf3, 0x33, 0x9b, 0xea, 0xe7, 0x55, 0x91, 0x33, 0x93, 0x16, 0xf9, 0x2d, 0x02, 0x81, 0xcf,
0xef, 0x2b, 0x35, 0xfc, 0x2a, 0xc1, 0xec, 0xa4, 0x09, 0x7e, 0x83, 0xe0, 0xce, 0x28, 0xc1, 0xf3,
0x21, 0xe8, 0xc2, 0x52, 0x3b, 0x0c, 0x19, 0xa9, 0xa3, 0xb0, 0x36, 0x8e, 0xc4, 0x68, 0x39, 0xa5,
0x18, 0x33, 0xc1, 0x57, 0x81, 0x34, 0xdc, 0xbe, 0xb2, 0x57, 0xfe, 0x09, 0x81, 0xb0, 0xaf, 0x57,
0x9f, 0xee, 0xd8, 0x6e, 0x60, 0xbb, 0xad, 0xe8, 0xe8, 0x7f, 0x04, 0x10, 0x1e, 0x42, 0x83, 0xf7,
0x99, 0xfb, 0x35, 0x3f, 0x7e, 0x2e, 0x86, 0x4f, 0x37, 0xe5, 0xf5, 0x10, 0xfb, 0x64, 0x50, 0x42,
0x5a, 0xbe, 0x39, 0x7c, 0xe4, 0x5d, 0x83, 0xaf, 0xcf, 0xb3, 0x50, 0xdc, 0x22, 0x9e, 0xb5, 0x6d,
0x7f, 0x71, 0x68, 0x5b, 0x76, 0xd0, 0x6f, 0x78, 0xac, 0x6b, 0x5b, 0xd4, 0x8b, 0x18, 0xec, 0xa6,
0xa8, 0x79, 0xf0, 0x22, 0x35, 0x17, 0x0f, 0xc1, 0x74, 0x49, 0x47, 0xb0, 0xec, 0x1f, 0x76, 0x3a,
0x4e, 0xdf, 0x48, 0x55, 0x36, 0x99, 0x66, 0x2d, 0x46, 0x10, 0x97, 0x0f, 0xec, 0x11, 0x2c, 0x37,
0x99, 0xe7, 0xb1, 0x9e, 0x91, 0x7a, 0x98, 0x26, 0x84, 0x1c, 0x41, 0x5c, 0x9e, 0x93, 0x5f, 0x11,
0x14, 0xaa, 0xd4, 0xa1, 0x2d, 0x12, 0xb0, 0x69, 0xf9, 0x7a, 0x30, 0x66, 0x54, 0x26, 0x23, 0x6b,
0x64, 0x68, 0x7e, 0x46, 0x90, 0xd7, 0x7b, 0xa4, 0x73, 0x13, 0xb4, 0xfc, 0x82, 0x60, 0x41, 0x27,
0x5d, 0xdb, 0x6d, 0xf9, 0x37, 0xa5, 0x35, 0x35, 0xe2, 0xb9, 0x37, 0x41, 0xcb, 0x3f, 0x59, 0x98,
0x8d, 0x60, 0xdf, 0x87, 0xdc, 0xff, 0xfb, 0x9b, 0xe5, 0xe9, 0x17, 0xaf, 0x61, 0xd9, 0x69, 0xbf,
0x86, 0xcd, 0x4c, 0xed, 0x35, 0x2c, 0xc5, 0xf2, 0xdc, 0xd4, 0x2c, 0x7f, 0x7b, 0x80, 0x20, 0x3f,
0x74, 0x11, 0x17, 0x61, 0x65, 0x63, 0x5b, 0x56, 0x77, 0x8c, 0xbd, 0x67, 0x8d, 0x9a, 0xb1, 0x5f,
0xd7, 0x1b, 0xb5, 0x0d, 0xf5, 0xb1, 0x5a, 0xab, 0x0a, 0x99, 0x91, 0xd8, 0x96, 0xac, 0x55, 0x0d,
0x65, 0x57, 0xd3, 0x76, 0x9f, 0x08, 0x28, 0x2d, 0xa6, 0xef, 0x37, 0x1a, 0xdb, 0xcf, 0x84, 0x2c,
0x5e, 0x85, 0xa5, 0x44, 0xac, 0x5a, 0xdb, 0xae, 0x6d, 0xca, 0x7b, 0xbb, 0x9a, 0x30, 0x83, 0x17,
0xe1, 0x76, 0x22, 0x52, 0x93, 0xb5, 0xba, 0x90, 0xc3, 0x2b, 0x80, 0x13, 0x9b, 0xba, 0xfc, 0xb1,
0x5a, 0xdf, 0xd4, 0x85, 0xd9, 0x91, 0x64, 0xfd, 0x89, 0xdc, 0x10, 0xe6, 0xf0, 0x1b, 0x70, 0x27,
0xc9, 0x57, 0xaf, 0x3e, 0x35, 0x76, 0xd4, 0xfa, 0x9e, 0x5a, 0xdf, 0x14, 0x5e, 0x2b, 0xe6, 0xbe,
0xfc, 0x4e, 0xcc, 0x28, 0xea, 0xf1, 0x73, 0x31, 0x73, 0x7c, 0x2a, 0xa2, 0x93, 0x53, 0x11, 0xfd,
0x7d, 0x2a, 0xa2, 0xaf, 0xcf, 0xc4, 0xcc, 0xc9, 0x99, 0x98, 0xf9, 0xe3, 0x4c, 0xcc, 0x7c, 0xf2,
0x4e, 0xa2, 0x3b, 0xa1, 0xbb, 0xeb, 0x0e, 0x69, 0xfa, 0x7c, 0x55, 0x39, 0x4a, 0x7c, 0x16, 0xf1,
0x36, 0x35, 0xe7, 0xf8, 0x57, 0xca, 0x7b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x05, 0x33, 0xc9,
0x45, 0x35, 0x0d, 0x00, 0x00,
}
func (m *BaseClaim) Marshal() (dAtA []byte, err error) {
@ -826,6 +870,55 @@ func (m *RewardIndexesProto) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *TypedRewardIndexes) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *TypedRewardIndexes) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *TypedRewardIndexes) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.RewardIndexes) > 0 {
for iNdEx := len(m.RewardIndexes) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.RewardIndexes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintClaims(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
}
if len(m.CollateralType) > 0 {
i -= len(m.CollateralType)
copy(dAtA[i:], m.CollateralType)
i = encodeVarintClaims(dAtA, i, uint64(len(m.CollateralType)))
i--
dAtA[i] = 0x12
}
if m.ClaimType != 0 {
i = encodeVarintClaims(dAtA, i, uint64(m.ClaimType))
i--
dAtA[i] = 0x8
}
return len(dAtA) - i, nil
}
func (m *MultiRewardIndex) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -1341,6 +1434,28 @@ func (m *RewardIndexesProto) Size() (n int) {
return n
}
func (m *TypedRewardIndexes) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.ClaimType != 0 {
n += 1 + sovClaims(uint64(m.ClaimType))
}
l = len(m.CollateralType)
if l > 0 {
n += 1 + l + sovClaims(uint64(l))
}
if len(m.RewardIndexes) > 0 {
for _, e := range m.RewardIndexes {
l = e.Size()
n += 1 + l + sovClaims(uint64(l))
}
}
return n
}
func (m *MultiRewardIndex) Size() (n int) {
if m == nil {
return 0
@ -1951,6 +2066,141 @@ func (m *RewardIndexesProto) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *TypedRewardIndexes) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowClaims
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: TypedRewardIndexes: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: TypedRewardIndexes: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field ClaimType", wireType)
}
m.ClaimType = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowClaims
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.ClaimType |= ClaimType(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field CollateralType", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowClaims
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthClaims
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthClaims
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.CollateralType = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RewardIndexes", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowClaims
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthClaims
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthClaims
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.RewardIndexes = append(m.RewardIndexes, RewardIndex{})
if err := m.RewardIndexes[len(m.RewardIndexes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipClaims(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthClaims
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *MultiRewardIndex) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View File

@ -18,8 +18,9 @@ var (
DefaultEarnClaims = EarnClaims{}
// New fields
DefaultClaims = Claims{}
DefaultAccrualTimes = AccrualTimes{}
DefaultClaims = Claims{}
DefaultAccrualTimes = AccrualTimes{}
DefaultTypedRewardIndexesList = TypedRewardIndexesList{}
)
// NewGenesisState returns a new genesis state
@ -30,6 +31,7 @@ func NewGenesisState(
uc USDXMintingClaims, hc HardLiquidityProviderClaims, dc DelegatorClaims, sc SwapClaims, savingsc SavingsClaims,
earnc EarnClaims,
accrualTimes AccrualTimes,
rewardIndexes TypedRewardIndexesList,
) GenesisState {
return GenesisState{
Params: params,
@ -51,8 +53,9 @@ func NewGenesisState(
// New fields
// Claims of all types
Claims: c,
AccrualTimes: accrualTimes,
Claims: c,
AccrualTimes: accrualTimes,
RewardIndexes: rewardIndexes,
}
}
@ -75,6 +78,7 @@ func DefaultGenesisState() GenesisState {
SavingsClaims: DefaultSavingsClaims,
EarnClaims: DefaultEarnClaims,
AccrualTimes: DefaultAccrualTimes,
RewardIndexes: DefaultTypedRewardIndexesList,
}
}
@ -133,7 +137,11 @@ func (gs GenesisState) Validate() error {
return err
}
return gs.AccrualTimes.Validate()
if err := gs.AccrualTimes.Validate(); err != nil {
return err
}
return gs.RewardIndexes.Validate()
}
// NewGenesisRewardState returns a new GenesisRewardState

View File

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