Skip to content

Commit

Permalink
Merge pull request cosmos#9 from piplabs/lutty/add-period-delegations
Browse files Browse the repository at this point in the history
add GetAllPeriodDelegation
  • Loading branch information
jhd2best authored Oct 18, 2024
2 parents 0fc09df + cbb0ae2 commit f2cbdd9
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions x/staking/keeper/period_delegation.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package keeper

import (
"context"
storetypes "cosmossdk.io/store/types"
"errors"
"time"

Expand Down Expand Up @@ -36,6 +37,28 @@ func (k Keeper) ValidateNewPeriodDelegation(
return periodDelegation, nil
}

// GetAllPeriodDelegation returns all period delegation by delAddr and valAddr.
func (k Keeper) GetAllPeriodDelegation(ctx context.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) ([]types.PeriodDelegation, error) {
store := k.storeService.OpenKVStore(ctx)

periodDelegationsKey := types.GetPeriodDelegationsKey(delAddr, valAddr)
iterator, err := store.Iterator(periodDelegationsKey, storetypes.PrefixEndBytes(periodDelegationsKey))
if err != nil {
return nil, err
}

periodDelegations := make([]types.PeriodDelegation, 0)
for ; iterator.Valid(); iterator.Next() {
periodDelegation, err := types.UnmarshalPeriodDelegation(k.cdc, iterator.Value())
if err != nil {
return nil, err
}
periodDelegations = append(periodDelegations, periodDelegation)
}

return periodDelegations, nil
}

// GetPeriodDelegation returns a specific period delegation.
func (k Keeper) GetPeriodDelegation(
ctx context.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress, periodDelegationID string,
Expand Down

0 comments on commit f2cbdd9

Please sign in to comment.