refactor(x/staking): Migrate UnbondingID to collections (#17256)
This commit is contained in:
parent
b61f611f0e
commit
92dffb5fa8
@ -60,6 +60,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### API Breaking Changes
|
||||
|
||||
* (x/staking) [#17256](https://github.com/cosmos/cosmos-sdk/pull/17256) Use collections for `UnbondingID`.
|
||||
* (x/staking) [#17260](https://github.com/cosmos/cosmos-sdk/pull/17260) Use collections for `ValidatorByConsAddr`:
|
||||
* remove from `types`: `GetValidatorByConsAddrKey`
|
||||
* (x/staking) [#17248](https://github.com/cosmos/cosmos-sdk/pull/17248) Use collections for `UnbondingType`.
|
||||
|
||||
@ -38,6 +38,7 @@ type Keeper struct {
|
||||
LastTotalPower collections.Item[math.Int]
|
||||
ValidatorUpdates collections.Item[types.ValidatorUpdates]
|
||||
DelegationsByValidator collections.Map[collections.Pair[sdk.ValAddress, sdk.AccAddress], []byte]
|
||||
UnbondingID collections.Sequence
|
||||
ValidatorByConsensusAddress collections.Map[sdk.ConsAddress, sdk.ValAddress]
|
||||
UnbondingType collections.Map[uint64, uint64]
|
||||
}
|
||||
@ -89,6 +90,7 @@ func NewKeeper(
|
||||
collections.PairKeyCodec(sdk.LengthPrefixedAddressKey(sdk.ValAddressKey), sdk.AccAddressKey), // nolint: staticcheck // sdk.LengthPrefixedAddressKey is needed to retain state compatibility
|
||||
collections.BytesValue,
|
||||
),
|
||||
UnbondingID: collections.NewSequence(sb, types.UnbondingIDKey, "unbonding_id"),
|
||||
ValidatorByConsensusAddress: collections.NewMap(
|
||||
sb, types.ValidatorsByConsAddrKey,
|
||||
"validator_by_cons_addr",
|
||||
|
||||
@ -2,7 +2,6 @@ package keeper
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
|
||||
"cosmossdk.io/collections"
|
||||
@ -14,26 +13,12 @@ import (
|
||||
|
||||
// IncrementUnbondingID increments and returns a unique ID for an unbonding operation
|
||||
func (k Keeper) IncrementUnbondingID(ctx context.Context) (unbondingID uint64, err error) {
|
||||
store := k.storeService.OpenKVStore(ctx)
|
||||
bz, err := store.Get(types.UnbondingIDKey)
|
||||
unbondingID, err = k.UnbondingID.Next(ctx)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if bz != nil {
|
||||
unbondingID = binary.BigEndian.Uint64(bz)
|
||||
}
|
||||
|
||||
unbondingID++
|
||||
|
||||
// Convert back into bytes for storage
|
||||
bz = make([]byte, 8)
|
||||
binary.BigEndian.PutUint64(bz, unbondingID)
|
||||
|
||||
if err = store.Set(types.UnbondingIDKey, bz); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return unbondingID, err
|
||||
}
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ var (
|
||||
RedelegationByValSrcIndexKey = []byte{0x35} // prefix for each key for an redelegation, by source validator operator
|
||||
RedelegationByValDstIndexKey = []byte{0x36} // prefix for each key for an redelegation, by destination validator operator
|
||||
|
||||
UnbondingIDKey = []byte{0x37} // key for the counter for the incrementing id for UnbondingOperations
|
||||
UnbondingIDKey = collections.NewPrefix(55) // key for the counter for the incrementing id for UnbondingOperations
|
||||
UnbondingIndexKey = []byte{0x38} // prefix for an index for looking up unbonding operations by their IDs
|
||||
UnbondingTypeKey = collections.NewPrefix(57) // prefix for an index containing the type of unbonding operations
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user