Merge PR #3230: Remove KV marshalling split
* remove kv seperation for marshalling * pending * cleanup * cleanup x2
This commit is contained in:
parent
e855780df7
commit
20f6ff3e60
|
@ -22,6 +22,7 @@ BREAKING CHANGES
|
||||||
|
|
||||||
* SDK
|
* SDK
|
||||||
* [stake] \#2513 Validator power type from Dec -> Int
|
* [stake] \#2513 Validator power type from Dec -> Int
|
||||||
|
* [stake] \#3233 key and value now contain duplicate fields to simplify code
|
||||||
* [\#3064](https://github.com/cosmos/cosmos-sdk/issues/3064) Sanitize `sdk.Coin` denom. Coins denoms are now case insensitive, i.e. 100fooToken equals to 100FOOTOKEN.
|
* [\#3064](https://github.com/cosmos/cosmos-sdk/issues/3064) Sanitize `sdk.Coin` denom. Coins denoms are now case insensitive, i.e. 100fooToken equals to 100FOOTOKEN.
|
||||||
|
|
||||||
* Tendermint
|
* Tendermint
|
||||||
|
|
|
@ -36,7 +36,7 @@ func GetCmdQueryValidator(storeName string, cdc *codec.Codec) *cobra.Command {
|
||||||
return fmt.Errorf("No validator found with address %s", args[0])
|
return fmt.Errorf("No validator found with address %s", args[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
validator := types.MustUnmarshalValidator(cdc, addr, res)
|
validator := types.MustUnmarshalValidator(cdc, res)
|
||||||
|
|
||||||
switch viper.Get(cli.OutputFlag) {
|
switch viper.Get(cli.OutputFlag) {
|
||||||
case "text":
|
case "text":
|
||||||
|
@ -81,8 +81,7 @@ func GetCmdQueryValidators(storeName string, cdc *codec.Codec) *cobra.Command {
|
||||||
// parse out the validators
|
// parse out the validators
|
||||||
var validators []stake.Validator
|
var validators []stake.Validator
|
||||||
for _, kv := range resKVs {
|
for _, kv := range resKVs {
|
||||||
addr := kv.Key[1:]
|
validator := types.MustUnmarshalValidator(cdc, kv.Value)
|
||||||
validator := types.MustUnmarshalValidator(cdc, addr, kv.Value)
|
|
||||||
validators = append(validators, validator)
|
validators = append(validators, validator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,8 +208,7 @@ func GetCmdQueryDelegation(storeName string, cdc *codec.Codec) *cobra.Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse out the delegation
|
// parse out the delegation
|
||||||
|
delegation, err := types.UnmarshalDelegation(cdc, res)
|
||||||
delegation, err := types.UnmarshalDelegation(cdc, key, res)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -267,7 +265,7 @@ func GetCmdQueryDelegations(storeName string, cdc *codec.Codec) *cobra.Command {
|
||||||
// parse out the validators
|
// parse out the validators
|
||||||
var delegations []stake.Delegation
|
var delegations []stake.Delegation
|
||||||
for _, kv := range resKVs {
|
for _, kv := range resKVs {
|
||||||
delegation := types.MustUnmarshalDelegation(cdc, kv.Key, kv.Value)
|
delegation := types.MustUnmarshalDelegation(cdc, kv.Value)
|
||||||
delegations = append(delegations, delegation)
|
delegations = append(delegations, delegation)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -347,7 +345,7 @@ func GetCmdQueryUnbondingDelegation(storeName string, cdc *codec.Codec) *cobra.C
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse out the unbonding delegation
|
// parse out the unbonding delegation
|
||||||
ubd := types.MustUnmarshalUBD(cdc, key, res)
|
ubd := types.MustUnmarshalUBD(cdc, res)
|
||||||
|
|
||||||
switch viper.Get(cli.OutputFlag) {
|
switch viper.Get(cli.OutputFlag) {
|
||||||
case "text":
|
case "text":
|
||||||
|
@ -401,7 +399,7 @@ func GetCmdQueryUnbondingDelegations(storeName string, cdc *codec.Codec) *cobra.
|
||||||
// parse out the unbonding delegations
|
// parse out the unbonding delegations
|
||||||
var ubds []stake.UnbondingDelegation
|
var ubds []stake.UnbondingDelegation
|
||||||
for _, kv := range resKVs {
|
for _, kv := range resKVs {
|
||||||
ubd := types.MustUnmarshalUBD(cdc, kv.Key, kv.Value)
|
ubd := types.MustUnmarshalUBD(cdc, kv.Value)
|
||||||
ubds = append(ubds, ubd)
|
ubds = append(ubds, ubd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -451,7 +449,7 @@ func GetCmdQueryRedelegation(storeName string, cdc *codec.Codec) *cobra.Command
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse out the unbonding delegation
|
// parse out the unbonding delegation
|
||||||
red := types.MustUnmarshalRED(cdc, key, res)
|
red := types.MustUnmarshalRED(cdc, res)
|
||||||
|
|
||||||
switch viper.Get(cli.OutputFlag) {
|
switch viper.Get(cli.OutputFlag) {
|
||||||
case "text":
|
case "text":
|
||||||
|
@ -505,7 +503,7 @@ func GetCmdQueryRedelegations(storeName string, cdc *codec.Codec) *cobra.Command
|
||||||
// parse out the validators
|
// parse out the validators
|
||||||
var reds []stake.Redelegation
|
var reds []stake.Redelegation
|
||||||
for _, kv := range resKVs {
|
for _, kv := range resKVs {
|
||||||
red := types.MustUnmarshalRED(cdc, kv.Key, kv.Value)
|
red := types.MustUnmarshalRED(cdc, kv.Value)
|
||||||
reds = append(reds, red)
|
reds = append(reds, red)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ func getShares(
|
||||||
return sharesAmount, errors.Errorf("cannot find delegation to determine percent Error: %v", err)
|
return sharesAmount, errors.Errorf("cannot find delegation to determine percent Error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
delegation, err := types.UnmarshalDelegation(cdc, key, resQuery)
|
delegation, err := types.UnmarshalDelegation(cdc, resQuery)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return sdk.ZeroDec(), err
|
return sdk.ZeroDec(), err
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ func (k Keeper) GetDelegation(ctx sdk.Context,
|
||||||
return delegation, false
|
return delegation, false
|
||||||
}
|
}
|
||||||
|
|
||||||
delegation = types.MustUnmarshalDelegation(k.cdc, key, value)
|
delegation = types.MustUnmarshalDelegation(k.cdc, value)
|
||||||
return delegation, true
|
return delegation, true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ func (k Keeper) GetAllDelegations(ctx sdk.Context) (delegations []types.Delegati
|
||||||
defer iterator.Close()
|
defer iterator.Close()
|
||||||
|
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Key(), iterator.Value())
|
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Value())
|
||||||
delegations = append(delegations, delegation)
|
delegations = append(delegations, delegation)
|
||||||
}
|
}
|
||||||
return delegations
|
return delegations
|
||||||
|
@ -44,7 +44,7 @@ func (k Keeper) GetValidatorDelegations(ctx sdk.Context, valAddr sdk.ValAddress)
|
||||||
defer iterator.Close()
|
defer iterator.Close()
|
||||||
|
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Key(), iterator.Value())
|
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Value())
|
||||||
if delegation.GetValidatorAddr().Equals(valAddr) {
|
if delegation.GetValidatorAddr().Equals(valAddr) {
|
||||||
delegations = append(delegations, delegation)
|
delegations = append(delegations, delegation)
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ func (k Keeper) GetDelegatorDelegations(ctx sdk.Context, delegator sdk.AccAddres
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
||||||
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Key(), iterator.Value())
|
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Value())
|
||||||
delegations[i] = delegation
|
delegations[i] = delegation
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ func (k Keeper) GetUnbondingDelegations(ctx sdk.Context, delegator sdk.AccAddres
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
||||||
unbondingDelegation := types.MustUnmarshalUBD(k.cdc, iterator.Key(), iterator.Value())
|
unbondingDelegation := types.MustUnmarshalUBD(k.cdc, iterator.Value())
|
||||||
unbondingDelegations[i] = unbondingDelegation
|
unbondingDelegations[i] = unbondingDelegation
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
@ -119,7 +119,7 @@ func (k Keeper) GetUnbondingDelegation(ctx sdk.Context,
|
||||||
return ubd, false
|
return ubd, false
|
||||||
}
|
}
|
||||||
|
|
||||||
ubd = types.MustUnmarshalUBD(k.cdc, key, value)
|
ubd = types.MustUnmarshalUBD(k.cdc, value)
|
||||||
return ubd, true
|
return ubd, true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ func (k Keeper) GetUnbondingDelegationsFromValidator(ctx sdk.Context, valAddr sd
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
key := GetUBDKeyFromValIndexKey(iterator.Key())
|
key := GetUBDKeyFromValIndexKey(iterator.Key())
|
||||||
value := store.Get(key)
|
value := store.Get(key)
|
||||||
ubd := types.MustUnmarshalUBD(k.cdc, key, value)
|
ubd := types.MustUnmarshalUBD(k.cdc, value)
|
||||||
ubds = append(ubds, ubd)
|
ubds = append(ubds, ubd)
|
||||||
}
|
}
|
||||||
return ubds
|
return ubds
|
||||||
|
@ -145,7 +145,7 @@ func (k Keeper) IterateUnbondingDelegations(ctx sdk.Context, fn func(index int64
|
||||||
defer iterator.Close()
|
defer iterator.Close()
|
||||||
|
|
||||||
for i := int64(0); iterator.Valid(); iterator.Next() {
|
for i := int64(0); iterator.Valid(); iterator.Next() {
|
||||||
ubd := types.MustUnmarshalUBD(k.cdc, iterator.Key(), iterator.Value())
|
ubd := types.MustUnmarshalUBD(k.cdc, iterator.Value())
|
||||||
if stop := fn(i, ubd); stop {
|
if stop := fn(i, ubd); stop {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -235,7 +235,7 @@ func (k Keeper) GetRedelegations(ctx sdk.Context, delegator sdk.AccAddress,
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
||||||
redelegation := types.MustUnmarshalRED(k.cdc, iterator.Key(), iterator.Value())
|
redelegation := types.MustUnmarshalRED(k.cdc, iterator.Value())
|
||||||
redelegations[i] = redelegation
|
redelegations[i] = redelegation
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
@ -253,7 +253,7 @@ func (k Keeper) GetRedelegation(ctx sdk.Context,
|
||||||
return red, false
|
return red, false
|
||||||
}
|
}
|
||||||
|
|
||||||
red = types.MustUnmarshalRED(k.cdc, key, value)
|
red = types.MustUnmarshalRED(k.cdc, value)
|
||||||
return red, true
|
return red, true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ func (k Keeper) GetRedelegationsFromValidator(ctx sdk.Context, valAddr sdk.ValAd
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
key := GetREDKeyFromValSrcIndexKey(iterator.Key())
|
key := GetREDKeyFromValSrcIndexKey(iterator.Key())
|
||||||
value := store.Get(key)
|
value := store.Get(key)
|
||||||
red := types.MustUnmarshalRED(k.cdc, key, value)
|
red := types.MustUnmarshalRED(k.cdc, value)
|
||||||
reds = append(reds, red)
|
reds = append(reds, red)
|
||||||
}
|
}
|
||||||
return reds
|
return reds
|
||||||
|
@ -305,7 +305,7 @@ func (k Keeper) IterateRedelegations(ctx sdk.Context, fn func(index int64, red t
|
||||||
defer iterator.Close()
|
defer iterator.Close()
|
||||||
|
|
||||||
for i := int64(0); iterator.Valid(); iterator.Next() {
|
for i := int64(0); iterator.Valid(); iterator.Next() {
|
||||||
red := types.MustUnmarshalRED(k.cdc, iterator.Key(), iterator.Value())
|
red := types.MustUnmarshalRED(k.cdc, iterator.Value())
|
||||||
if stop := fn(i, red); stop {
|
if stop := fn(i, red); stop {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,7 @@ func (k Keeper) GetDelegatorValidators(ctx sdk.Context, delegatorAddr sdk.AccAdd
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
||||||
addr := iterator.Key()
|
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Value())
|
||||||
delegation := types.MustUnmarshalDelegation(k.cdc, addr, iterator.Value())
|
|
||||||
|
|
||||||
validator, found := k.GetValidator(ctx, delegation.ValidatorAddr)
|
validator, found := k.GetValidator(ctx, delegation.ValidatorAddr)
|
||||||
if !found {
|
if !found {
|
||||||
|
@ -59,7 +58,7 @@ func (k Keeper) GetAllDelegatorDelegations(ctx sdk.Context, delegator sdk.AccAdd
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Key(), iterator.Value())
|
delegation := types.MustUnmarshalDelegation(k.cdc, iterator.Value())
|
||||||
delegations = append(delegations, delegation)
|
delegations = append(delegations, delegation)
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
@ -77,7 +76,7 @@ func (k Keeper) GetAllUnbondingDelegations(ctx sdk.Context, delegator sdk.AccAdd
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
unbondingDelegation := types.MustUnmarshalUBD(k.cdc, iterator.Key(), iterator.Value())
|
unbondingDelegation := types.MustUnmarshalUBD(k.cdc, iterator.Value())
|
||||||
unbondingDelegations = append(unbondingDelegations, unbondingDelegation)
|
unbondingDelegations = append(unbondingDelegations, unbondingDelegation)
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
@ -95,7 +94,7 @@ func (k Keeper) GetAllRedelegations(ctx sdk.Context, delegator sdk.AccAddress, s
|
||||||
dstValFilter := !(dstValAddress.Empty() || dstValAddress == nil)
|
dstValFilter := !(dstValAddress.Empty() || dstValAddress == nil)
|
||||||
|
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
redelegation := types.MustUnmarshalRED(k.cdc, iterator.Key(), iterator.Value())
|
redelegation := types.MustUnmarshalRED(k.cdc, iterator.Value())
|
||||||
if srcValFilter && !(srcValAddress.Equals(redelegation.ValidatorSrcAddr)) {
|
if srcValFilter && !(srcValAddress.Equals(redelegation.ValidatorSrcAddr)) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,7 @@ func (k Keeper) IterateValidators(ctx sdk.Context, fn func(index int64, validato
|
||||||
iterator := sdk.KVStorePrefixIterator(store, ValidatorsKey)
|
iterator := sdk.KVStorePrefixIterator(store, ValidatorsKey)
|
||||||
i := int64(0)
|
i := int64(0)
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
addr := iterator.Key()[1:]
|
validator := types.MustUnmarshalValidator(k.cdc, iterator.Value())
|
||||||
validator := types.MustUnmarshalValidator(k.cdc, addr, iterator.Value())
|
|
||||||
stop := fn(i, validator) // XXX is this safe will the validator unexposed fields be able to get written to?
|
stop := fn(i, validator) // XXX is this safe will the validator unexposed fields be able to get written to?
|
||||||
if stop {
|
if stop {
|
||||||
break
|
break
|
||||||
|
@ -136,7 +135,7 @@ func (k Keeper) IterateDelegations(ctx sdk.Context, delAddr sdk.AccAddress,
|
||||||
delegatorPrefixKey := GetDelegationsKey(delAddr)
|
delegatorPrefixKey := GetDelegationsKey(delAddr)
|
||||||
iterator := sdk.KVStorePrefixIterator(store, delegatorPrefixKey) //smallest to largest
|
iterator := sdk.KVStorePrefixIterator(store, delegatorPrefixKey) //smallest to largest
|
||||||
for i := int64(0); iterator.Valid(); iterator.Next() {
|
for i := int64(0); iterator.Valid(); iterator.Next() {
|
||||||
del := types.MustUnmarshalDelegation(k.cdc, iterator.Key(), iterator.Value())
|
del := types.MustUnmarshalDelegation(k.cdc, iterator.Value())
|
||||||
stop := fn(i, del)
|
stop := fn(i, del)
|
||||||
if stop {
|
if stop {
|
||||||
break
|
break
|
||||||
|
|
|
@ -36,7 +36,7 @@ func (k Keeper) GetValidator(ctx sdk.Context, addr sdk.ValAddress) (validator ty
|
||||||
}
|
}
|
||||||
|
|
||||||
// amino bytes weren't found in cache, so amino unmarshal and add it to the cache
|
// amino bytes weren't found in cache, so amino unmarshal and add it to the cache
|
||||||
validator = types.MustUnmarshalValidator(k.cdc, addr, value)
|
validator = types.MustUnmarshalValidator(k.cdc, value)
|
||||||
cachedVal := cachedValidator{validator, strValue}
|
cachedVal := cachedValidator{validator, strValue}
|
||||||
k.validatorCache[strValue] = cachedValidator{validator, strValue}
|
k.validatorCache[strValue] = cachedValidator{validator, strValue}
|
||||||
k.validatorCacheList.PushBack(cachedVal)
|
k.validatorCacheList.PushBack(cachedVal)
|
||||||
|
@ -47,7 +47,7 @@ func (k Keeper) GetValidator(ctx sdk.Context, addr sdk.ValAddress) (validator ty
|
||||||
delete(k.validatorCache, valToRemove.marshalled)
|
delete(k.validatorCache, valToRemove.marshalled)
|
||||||
}
|
}
|
||||||
|
|
||||||
validator = types.MustUnmarshalValidator(k.cdc, addr, value)
|
validator = types.MustUnmarshalValidator(k.cdc, value)
|
||||||
return validator, true
|
return validator, true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,8 +217,7 @@ func (k Keeper) GetAllValidators(ctx sdk.Context) (validators []types.Validator)
|
||||||
defer iterator.Close()
|
defer iterator.Close()
|
||||||
|
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
addr := iterator.Key()[1:]
|
validator := types.MustUnmarshalValidator(k.cdc, iterator.Value())
|
||||||
validator := types.MustUnmarshalValidator(k.cdc, addr, iterator.Value())
|
|
||||||
validators = append(validators, validator)
|
validators = append(validators, validator)
|
||||||
}
|
}
|
||||||
return validators
|
return validators
|
||||||
|
@ -234,8 +233,7 @@ func (k Keeper) GetValidators(ctx sdk.Context, maxRetrieve uint16) (validators [
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
for ; iterator.Valid() && i < int(maxRetrieve); iterator.Next() {
|
||||||
addr := iterator.Key()[1:]
|
validator := types.MustUnmarshalValidator(k.cdc, iterator.Value())
|
||||||
validator := types.MustUnmarshalValidator(k.cdc, addr, iterator.Value())
|
|
||||||
validators[i] = validator
|
validators[i] = validator
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,50 +35,24 @@ type Delegation struct {
|
||||||
Shares sdk.Dec `json:"shares"`
|
Shares sdk.Dec `json:"shares"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type delegationValue struct {
|
// return the delegation
|
||||||
Shares sdk.Dec
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the delegation without fields contained within the key for the store
|
|
||||||
func MustMarshalDelegation(cdc *codec.Codec, delegation Delegation) []byte {
|
func MustMarshalDelegation(cdc *codec.Codec, delegation Delegation) []byte {
|
||||||
val := delegationValue{
|
return cdc.MustMarshalBinaryLengthPrefixed(delegation)
|
||||||
delegation.Shares,
|
|
||||||
}
|
|
||||||
return cdc.MustMarshalBinaryLengthPrefixed(val)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// return the delegation without fields contained within the key for the store
|
// return the delegation
|
||||||
func MustUnmarshalDelegation(cdc *codec.Codec, key, value []byte) Delegation {
|
func MustUnmarshalDelegation(cdc *codec.Codec, value []byte) Delegation {
|
||||||
delegation, err := UnmarshalDelegation(cdc, key, value)
|
delegation, err := UnmarshalDelegation(cdc, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
return delegation
|
return delegation
|
||||||
}
|
}
|
||||||
|
|
||||||
// return the delegation without fields contained within the key for the store
|
// return the delegation
|
||||||
func UnmarshalDelegation(cdc *codec.Codec, key, value []byte) (delegation Delegation, err error) {
|
func UnmarshalDelegation(cdc *codec.Codec, value []byte) (delegation Delegation, err error) {
|
||||||
var storeValue delegationValue
|
err = cdc.UnmarshalBinaryLengthPrefixed(value, &delegation)
|
||||||
err = cdc.UnmarshalBinaryLengthPrefixed(value, &storeValue)
|
return delegation, err
|
||||||
if err != nil {
|
|
||||||
err = fmt.Errorf("%v: %v", ErrNoDelegation(DefaultCodespace).Data(), err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
addrs := key[1:] // remove prefix bytes
|
|
||||||
if len(addrs) != 2*sdk.AddrLen {
|
|
||||||
err = fmt.Errorf("%v", ErrBadDelegationAddr(DefaultCodespace).Data())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
delAddr := sdk.AccAddress(addrs[:sdk.AddrLen])
|
|
||||||
valAddr := sdk.ValAddress(addrs[sdk.AddrLen:])
|
|
||||||
|
|
||||||
return Delegation{
|
|
||||||
DelegatorAddr: delAddr,
|
|
||||||
ValidatorAddr: valAddr,
|
|
||||||
Shares: storeValue.Shares,
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// nolint
|
// nolint
|
||||||
|
@ -118,57 +92,24 @@ type UnbondingDelegation struct {
|
||||||
Balance sdk.Coin `json:"balance"` // atoms to receive at completion
|
Balance sdk.Coin `json:"balance"` // atoms to receive at completion
|
||||||
}
|
}
|
||||||
|
|
||||||
type ubdValue struct {
|
// return the unbonding delegation
|
||||||
CreationHeight int64
|
|
||||||
MinTime time.Time
|
|
||||||
InitialBalance sdk.Coin
|
|
||||||
Balance sdk.Coin
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the unbonding delegation without fields contained within the key for the store
|
|
||||||
func MustMarshalUBD(cdc *codec.Codec, ubd UnbondingDelegation) []byte {
|
func MustMarshalUBD(cdc *codec.Codec, ubd UnbondingDelegation) []byte {
|
||||||
val := ubdValue{
|
return cdc.MustMarshalBinaryLengthPrefixed(ubd)
|
||||||
ubd.CreationHeight,
|
|
||||||
ubd.MinTime,
|
|
||||||
ubd.InitialBalance,
|
|
||||||
ubd.Balance,
|
|
||||||
}
|
|
||||||
return cdc.MustMarshalBinaryLengthPrefixed(val)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal a unbonding delegation from a store key and value
|
// unmarshal a unbonding delegation from a store value
|
||||||
func MustUnmarshalUBD(cdc *codec.Codec, key, value []byte) UnbondingDelegation {
|
func MustUnmarshalUBD(cdc *codec.Codec, value []byte) UnbondingDelegation {
|
||||||
ubd, err := UnmarshalUBD(cdc, key, value)
|
ubd, err := UnmarshalUBD(cdc, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
return ubd
|
return ubd
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal a unbonding delegation from a store key and value
|
// unmarshal a unbonding delegation from a store value
|
||||||
func UnmarshalUBD(cdc *codec.Codec, key, value []byte) (ubd UnbondingDelegation, err error) {
|
func UnmarshalUBD(cdc *codec.Codec, value []byte) (ubd UnbondingDelegation, err error) {
|
||||||
var storeValue ubdValue
|
err = cdc.UnmarshalBinaryLengthPrefixed(value, &ubd)
|
||||||
err = cdc.UnmarshalBinaryLengthPrefixed(value, &storeValue)
|
return ubd, err
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
addrs := key[1:] // remove prefix bytes
|
|
||||||
if len(addrs) != 2*sdk.AddrLen {
|
|
||||||
err = fmt.Errorf("%v", ErrBadDelegationAddr(DefaultCodespace).Data())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
delAddr := sdk.AccAddress(addrs[:sdk.AddrLen])
|
|
||||||
valAddr := sdk.ValAddress(addrs[sdk.AddrLen:])
|
|
||||||
|
|
||||||
return UnbondingDelegation{
|
|
||||||
DelegatorAddr: delAddr,
|
|
||||||
ValidatorAddr: valAddr,
|
|
||||||
CreationHeight: storeValue.CreationHeight,
|
|
||||||
MinTime: storeValue.MinTime,
|
|
||||||
InitialBalance: storeValue.InitialBalance,
|
|
||||||
Balance: storeValue.Balance,
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// nolint
|
// nolint
|
||||||
|
@ -206,65 +147,24 @@ type Redelegation struct {
|
||||||
SharesDst sdk.Dec `json:"shares_dst"` // amount of destination shares redelegating
|
SharesDst sdk.Dec `json:"shares_dst"` // amount of destination shares redelegating
|
||||||
}
|
}
|
||||||
|
|
||||||
type redValue struct {
|
// return the redelegation
|
||||||
CreationHeight int64
|
|
||||||
MinTime time.Time
|
|
||||||
InitialBalance sdk.Coin
|
|
||||||
Balance sdk.Coin
|
|
||||||
SharesSrc sdk.Dec
|
|
||||||
SharesDst sdk.Dec
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the redelegation without fields contained within the key for the store
|
|
||||||
func MustMarshalRED(cdc *codec.Codec, red Redelegation) []byte {
|
func MustMarshalRED(cdc *codec.Codec, red Redelegation) []byte {
|
||||||
val := redValue{
|
return cdc.MustMarshalBinaryLengthPrefixed(red)
|
||||||
red.CreationHeight,
|
|
||||||
red.MinTime,
|
|
||||||
red.InitialBalance,
|
|
||||||
red.Balance,
|
|
||||||
red.SharesSrc,
|
|
||||||
red.SharesDst,
|
|
||||||
}
|
|
||||||
return cdc.MustMarshalBinaryLengthPrefixed(val)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal a redelegation from a store key and value
|
// unmarshal a redelegation from a store value
|
||||||
func MustUnmarshalRED(cdc *codec.Codec, key, value []byte) Redelegation {
|
func MustUnmarshalRED(cdc *codec.Codec, value []byte) Redelegation {
|
||||||
red, err := UnmarshalRED(cdc, key, value)
|
red, err := UnmarshalRED(cdc, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
return red
|
return red
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal a redelegation from a store key and value
|
// unmarshal a redelegation from a store value
|
||||||
func UnmarshalRED(cdc *codec.Codec, key, value []byte) (red Redelegation, err error) {
|
func UnmarshalRED(cdc *codec.Codec, value []byte) (red Redelegation, err error) {
|
||||||
var storeValue redValue
|
err = cdc.UnmarshalBinaryLengthPrefixed(value, &red)
|
||||||
err = cdc.UnmarshalBinaryLengthPrefixed(value, &storeValue)
|
return red, err
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
addrs := key[1:] // remove prefix bytes
|
|
||||||
if len(addrs) != 3*sdk.AddrLen {
|
|
||||||
err = fmt.Errorf("%v", ErrBadRedelegationAddr(DefaultCodespace).Data())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
delAddr := sdk.AccAddress(addrs[:sdk.AddrLen])
|
|
||||||
valSrcAddr := sdk.ValAddress(addrs[sdk.AddrLen : 2*sdk.AddrLen])
|
|
||||||
valDstAddr := sdk.ValAddress(addrs[2*sdk.AddrLen:])
|
|
||||||
|
|
||||||
return Redelegation{
|
|
||||||
DelegatorAddr: delAddr,
|
|
||||||
ValidatorSrcAddr: valSrcAddr,
|
|
||||||
ValidatorDstAddr: valDstAddr,
|
|
||||||
CreationHeight: storeValue.CreationHeight,
|
|
||||||
MinTime: storeValue.MinTime,
|
|
||||||
InitialBalance: storeValue.InitialBalance,
|
|
||||||
Balance: storeValue.Balance,
|
|
||||||
SharesSrc: storeValue.SharesSrc,
|
|
||||||
SharesDst: storeValue.SharesDst,
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// nolint
|
// nolint
|
||||||
|
|
|
@ -55,71 +55,24 @@ func NewValidator(operator sdk.ValAddress, pubKey crypto.PubKey, description Des
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// what's kept in the store value
|
// return the redelegation
|
||||||
type validatorValue struct {
|
|
||||||
ConsPubKey crypto.PubKey
|
|
||||||
Jailed bool
|
|
||||||
Status sdk.BondStatus
|
|
||||||
Tokens sdk.Int
|
|
||||||
DelegatorShares sdk.Dec
|
|
||||||
Description Description
|
|
||||||
BondHeight int64
|
|
||||||
UnbondingHeight int64
|
|
||||||
UnbondingMinTime time.Time
|
|
||||||
Commission Commission
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the redelegation without fields contained within the key for the store
|
|
||||||
func MustMarshalValidator(cdc *codec.Codec, validator Validator) []byte {
|
func MustMarshalValidator(cdc *codec.Codec, validator Validator) []byte {
|
||||||
val := validatorValue{
|
return cdc.MustMarshalBinaryLengthPrefixed(validator)
|
||||||
ConsPubKey: validator.ConsPubKey,
|
|
||||||
Jailed: validator.Jailed,
|
|
||||||
Status: validator.Status,
|
|
||||||
Tokens: validator.Tokens,
|
|
||||||
DelegatorShares: validator.DelegatorShares,
|
|
||||||
Description: validator.Description,
|
|
||||||
BondHeight: validator.BondHeight,
|
|
||||||
UnbondingHeight: validator.UnbondingHeight,
|
|
||||||
UnbondingMinTime: validator.UnbondingMinTime,
|
|
||||||
Commission: validator.Commission,
|
|
||||||
}
|
|
||||||
return cdc.MustMarshalBinaryLengthPrefixed(val)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal a redelegation from a store key and value
|
// unmarshal a redelegation from a store value
|
||||||
func MustUnmarshalValidator(cdc *codec.Codec, operatorAddr, value []byte) Validator {
|
func MustUnmarshalValidator(cdc *codec.Codec, value []byte) Validator {
|
||||||
validator, err := UnmarshalValidator(cdc, operatorAddr, value)
|
validator, err := UnmarshalValidator(cdc, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
return validator
|
return validator
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal a redelegation from a store key and value
|
// unmarshal a redelegation from a store value
|
||||||
func UnmarshalValidator(cdc *codec.Codec, operatorAddr, value []byte) (validator Validator, err error) {
|
func UnmarshalValidator(cdc *codec.Codec, value []byte) (validator Validator, err error) {
|
||||||
if len(operatorAddr) != sdk.AddrLen {
|
err = cdc.UnmarshalBinaryLengthPrefixed(value, &validator)
|
||||||
err = fmt.Errorf("%v", ErrBadValidatorAddr(DefaultCodespace).Data())
|
return validator, err
|
||||||
return
|
|
||||||
}
|
|
||||||
var storeValue validatorValue
|
|
||||||
err = cdc.UnmarshalBinaryLengthPrefixed(value, &storeValue)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
return Validator{
|
|
||||||
OperatorAddr: operatorAddr,
|
|
||||||
ConsPubKey: storeValue.ConsPubKey,
|
|
||||||
Jailed: storeValue.Jailed,
|
|
||||||
Tokens: storeValue.Tokens,
|
|
||||||
Status: storeValue.Status,
|
|
||||||
DelegatorShares: storeValue.DelegatorShares,
|
|
||||||
Description: storeValue.Description,
|
|
||||||
BondHeight: storeValue.BondHeight,
|
|
||||||
UnbondingHeight: storeValue.UnbondingHeight,
|
|
||||||
UnbondingMinTime: storeValue.UnbondingMinTime,
|
|
||||||
Commission: storeValue.Commission,
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HumanReadableString returns a human readable string representation of a
|
// HumanReadableString returns a human readable string representation of a
|
||||||
|
|
Loading…
Reference in New Issue