fix MsgEditValidator JSON tag (#5342)
* add json tag to MsgEditValidator; closes #5336 * changelog * Apply suggestions from code review Co-Authored-By: Alessio Treglia <alessio@tendermint.com> * format * changelog minor fix
This commit is contained in:
parent
b862e271a1
commit
b9c40ea2b6
|
@ -83,6 +83,7 @@ if the provided arguments are invalid.
|
|||
* (rest) [\#4783](https://github.com/cosmos/cosmos-sdk/issues/4783) The balance field in the DelegationResponse type is now sdk.Coin instead of sdk.Int
|
||||
* (x/auth) [\#5006](https://github.com/cosmos/cosmos-sdk/pull/5006) The gas required to pass the `AnteHandler` has
|
||||
increased significantly due to modular `AnteHandler` support. Increase GasLimit accordingly.
|
||||
* (rest) [\#5336](https://github.com/cosmos/cosmos-sdk/issues/5336) `MsgEditValidator` uses `description` instead of `Description` as a JSON key.
|
||||
|
||||
### Features
|
||||
|
||||
|
|
|
@ -5,10 +5,11 @@ package v0_36
|
|||
import (
|
||||
"time"
|
||||
|
||||
"github.com/tendermint/tendermint/crypto"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
v034staking "github.com/cosmos/cosmos-sdk/x/staking/legacy/v0_34"
|
||||
"github.com/tendermint/tendermint/crypto"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -5,9 +5,9 @@ package v0_38
|
|||
import (
|
||||
"time"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
"github.com/tendermint/tendermint/crypto"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
v034staking "github.com/cosmos/cosmos-sdk/x/staking/legacy/v0_34"
|
||||
v036staking "github.com/cosmos/cosmos-sdk/x/staking/legacy/v0_36"
|
||||
|
|
|
@ -42,7 +42,8 @@ type msgCreateValidatorJSON struct {
|
|||
Value sdk.Coin `json:"value" yaml:"value"`
|
||||
}
|
||||
|
||||
// Default way to create validator. Delegator address and validator address are the same
|
||||
// NewMsgCreateValidator creates a new MsgCreateValidator instance.
|
||||
// Delegator address and validator address are the same.
|
||||
func NewMsgCreateValidator(
|
||||
valAddr sdk.ValAddress, pubKey crypto.PubKey, selfDelegation sdk.Coin,
|
||||
description Description, commission CommissionRates, minSelfDelegation sdk.Int,
|
||||
|
@ -59,18 +60,21 @@ func NewMsgCreateValidator(
|
|||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
// Route implements the sdk.Msg interface.
|
||||
func (msg MsgCreateValidator) Route() string { return RouterKey }
|
||||
func (msg MsgCreateValidator) Type() string { return "create_validator" }
|
||||
|
||||
// Return address(es) that must sign over msg.GetSignBytes()
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgCreateValidator) Type() string { return "create_validator" }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface. It returns the address(es) that
|
||||
// must sign over msg.GetSignBytes().
|
||||
// If the validator address is not same as delegator's, then the validator must
|
||||
// sign the msg as well.
|
||||
func (msg MsgCreateValidator) GetSigners() []sdk.AccAddress {
|
||||
// delegator is first signer so delegator pays fees
|
||||
addrs := []sdk.AccAddress{msg.DelegatorAddress}
|
||||
|
||||
if !bytes.Equal(msg.DelegatorAddress.Bytes(), msg.ValidatorAddress.Bytes()) {
|
||||
// if validator addr is not same as delegator addr, validator must sign
|
||||
// msg as well
|
||||
addrs = append(addrs, sdk.AccAddress(msg.ValidatorAddress))
|
||||
}
|
||||
return addrs
|
||||
|
@ -113,7 +117,7 @@ func (msg *MsgCreateValidator) UnmarshalJSON(bz []byte) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// custom marshal yaml function due to consensus pubkey
|
||||
// MarshalYAML implements a custom marshal yaml function due to consensus pubkey.
|
||||
func (msg MsgCreateValidator) MarshalYAML() (interface{}, error) {
|
||||
bs, err := yaml.Marshal(struct {
|
||||
Description Description
|
||||
|
@ -146,7 +150,7 @@ func (msg MsgCreateValidator) GetSignBytes() []byte {
|
|||
return sdk.MustSortJSON(bz)
|
||||
}
|
||||
|
||||
// quick validity check
|
||||
// ValidateBasic implements the sdk.Msg interface.
|
||||
func (msg MsgCreateValidator) ValidateBasic() sdk.Error {
|
||||
// note that unmarshaling from bech32 ensures either empty or valid
|
||||
if msg.DelegatorAddress.Empty() {
|
||||
|
@ -182,7 +186,7 @@ func (msg MsgCreateValidator) ValidateBasic() sdk.Error {
|
|||
|
||||
// MsgEditValidator - struct for editing a validator
|
||||
type MsgEditValidator struct {
|
||||
Description
|
||||
Description Description `json:"description" yaml:"description"`
|
||||
ValidatorAddress sdk.ValAddress `json:"address" yaml:"address"`
|
||||
|
||||
// We pass a reference to the new commission rate and min self delegation as it's not mandatory to
|
||||
|
@ -194,6 +198,7 @@ type MsgEditValidator struct {
|
|||
MinSelfDelegation *sdk.Int `json:"min_self_delegation" yaml:"min_self_delegation"`
|
||||
}
|
||||
|
||||
// NewMsgEditValidator creates a new MsgEditValidator instance
|
||||
func NewMsgEditValidator(valAddr sdk.ValAddress, description Description, newRate *sdk.Dec, newMinSelfDelegation *sdk.Int) MsgEditValidator {
|
||||
return MsgEditValidator{
|
||||
Description: description,
|
||||
|
@ -203,20 +208,24 @@ func NewMsgEditValidator(valAddr sdk.ValAddress, description Description, newRat
|
|||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
// Route implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) Route() string { return RouterKey }
|
||||
func (msg MsgEditValidator) Type() string { return "edit_validator" }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) Type() string { return "edit_validator" }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{sdk.AccAddress(msg.ValidatorAddress)}
|
||||
}
|
||||
|
||||
// get the bytes for the message signer to sign on
|
||||
// GetSignBytes implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) GetSignBytes() []byte {
|
||||
bz := ModuleCdc.MustMarshalJSON(msg)
|
||||
return sdk.MustSortJSON(bz)
|
||||
}
|
||||
|
||||
// quick validity check
|
||||
// ValidateBasic implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) ValidateBasic() sdk.Error {
|
||||
if msg.ValidatorAddress.Empty() {
|
||||
return sdk.NewError(DefaultCodespace, CodeInvalidInput, "nil validator address")
|
||||
|
@ -246,6 +255,7 @@ type MsgDelegate struct {
|
|||
Amount sdk.Coin `json:"amount" yaml:"amount"`
|
||||
}
|
||||
|
||||
// NewMsgDelegate creates a new MsgDelegate instance.
|
||||
func NewMsgDelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amount sdk.Coin) MsgDelegate {
|
||||
return MsgDelegate{
|
||||
DelegatorAddress: delAddr,
|
||||
|
@ -254,20 +264,24 @@ func NewMsgDelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amount sdk.C
|
|||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
// Route implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) Route() string { return RouterKey }
|
||||
func (msg MsgDelegate) Type() string { return "delegate" }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) Type() string { return "delegate" }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.DelegatorAddress}
|
||||
}
|
||||
|
||||
// get the bytes for the message signer to sign on
|
||||
// GetSignBytes implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) GetSignBytes() []byte {
|
||||
bz := ModuleCdc.MustMarshalJSON(msg)
|
||||
return sdk.MustSortJSON(bz)
|
||||
}
|
||||
|
||||
// quick validity check
|
||||
// ValidateBasic implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) ValidateBasic() sdk.Error {
|
||||
if msg.DelegatorAddress.Empty() {
|
||||
return ErrNilDelegatorAddr(DefaultCodespace)
|
||||
|
@ -283,7 +297,7 @@ func (msg MsgDelegate) ValidateBasic() sdk.Error {
|
|||
|
||||
//______________________________________________________________________
|
||||
|
||||
// MsgDelegate - struct for bonding transactions
|
||||
// MsgBeginRedelegate defines the attributes of a bonding transaction.
|
||||
type MsgBeginRedelegate struct {
|
||||
DelegatorAddress sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
|
||||
ValidatorSrcAddress sdk.ValAddress `json:"validator_src_address" yaml:"validator_src_address"`
|
||||
|
@ -291,9 +305,10 @@ type MsgBeginRedelegate struct {
|
|||
Amount sdk.Coin `json:"amount" yaml:"amount"`
|
||||
}
|
||||
|
||||
func NewMsgBeginRedelegate(delAddr sdk.AccAddress, valSrcAddr,
|
||||
valDstAddr sdk.ValAddress, amount sdk.Coin) MsgBeginRedelegate {
|
||||
|
||||
// NewMsgBeginRedelegate creates a new MsgBeginRedelegate instance.
|
||||
func NewMsgBeginRedelegate(
|
||||
delAddr sdk.AccAddress, valSrcAddr, valDstAddr sdk.ValAddress, amount sdk.Coin,
|
||||
) MsgBeginRedelegate {
|
||||
return MsgBeginRedelegate{
|
||||
DelegatorAddress: delAddr,
|
||||
ValidatorSrcAddress: valSrcAddr,
|
||||
|
@ -302,20 +317,24 @@ func NewMsgBeginRedelegate(delAddr sdk.AccAddress, valSrcAddr,
|
|||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
// Route implements the sdk.Msg interface.
|
||||
func (msg MsgBeginRedelegate) Route() string { return RouterKey }
|
||||
func (msg MsgBeginRedelegate) Type() string { return "begin_redelegate" }
|
||||
|
||||
// Type implements the sdk.Msg interface
|
||||
func (msg MsgBeginRedelegate) Type() string { return "begin_redelegate" }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface
|
||||
func (msg MsgBeginRedelegate) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.DelegatorAddress}
|
||||
}
|
||||
|
||||
// get the bytes for the message signer to sign on
|
||||
// GetSignBytes implements the sdk.Msg interface.
|
||||
func (msg MsgBeginRedelegate) GetSignBytes() []byte {
|
||||
bz := ModuleCdc.MustMarshalJSON(msg)
|
||||
return sdk.MustSortJSON(bz)
|
||||
}
|
||||
|
||||
// quick validity check
|
||||
// ValidateBasic implements the sdk.Msg interface.
|
||||
func (msg MsgBeginRedelegate) ValidateBasic() sdk.Error {
|
||||
if msg.DelegatorAddress.Empty() {
|
||||
return ErrNilDelegatorAddr(DefaultCodespace)
|
||||
|
@ -339,6 +358,7 @@ type MsgUndelegate struct {
|
|||
Amount sdk.Coin `json:"amount" yaml:"amount"`
|
||||
}
|
||||
|
||||
// NewMsgUndelegate creates a new MsgUndelegate instance.
|
||||
func NewMsgUndelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amount sdk.Coin) MsgUndelegate {
|
||||
return MsgUndelegate{
|
||||
DelegatorAddress: delAddr,
|
||||
|
@ -347,18 +367,22 @@ func NewMsgUndelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amount sdk
|
|||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
func (msg MsgUndelegate) Route() string { return RouterKey }
|
||||
func (msg MsgUndelegate) Type() string { return "begin_unbonding" }
|
||||
// Route implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) Route() string { return RouterKey }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) Type() string { return "begin_unbonding" }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.DelegatorAddress} }
|
||||
|
||||
// get the bytes for the message signer to sign on
|
||||
// GetSignBytes implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) GetSignBytes() []byte {
|
||||
bz := ModuleCdc.MustMarshalJSON(msg)
|
||||
return sdk.MustSortJSON(bz)
|
||||
}
|
||||
|
||||
// quick validity check
|
||||
// ValidateBasic implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) ValidateBasic() sdk.Error {
|
||||
if msg.DelegatorAddress.Empty() {
|
||||
return ErrNilDelegatorAddr(DefaultCodespace)
|
||||
|
|
Loading…
Reference in New Issue