Merge PR #6278: Add msg type sim operations
This commit is contained in:
parent
21a9cb9b28
commit
7cd0caba7a
@ -80,8 +80,8 @@ func NewOperationMsg(msg sdk.Msg, ok bool, comment string) OperationMsg {
|
||||
}
|
||||
|
||||
// NoOpMsg - create a no-operation message
|
||||
func NoOpMsg(route string) OperationMsg {
|
||||
return NewOperationMsgBasic(route, "no-operation", "", false, nil)
|
||||
func NoOpMsg(route, msgType, comment string) OperationMsg {
|
||||
return NewOperationMsgBasic(route, msgType, comment, false, nil)
|
||||
}
|
||||
|
||||
// log entry text for this operation msg
|
||||
|
||||
@ -61,20 +61,20 @@ func SimulateMsgSend(ak types.AccountKeeper, bk keeper.Keeper) simtypes.Operatio
|
||||
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
|
||||
|
||||
if !bk.GetSendEnabled(ctx) {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSend, "transfers are not enabled"), nil, nil
|
||||
}
|
||||
|
||||
simAccount, toSimAcc, coins, skip := randomSendFields(r, ctx, accs, bk, ak)
|
||||
|
||||
if skip {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSend, "skip all transfers"), nil, nil
|
||||
}
|
||||
|
||||
msg := types.NewMsgSend(simAccount.Address, toSimAcc.Address, coins)
|
||||
|
||||
err := sendMsgSend(r, app, bk, ak, msg, ctx, chainID, []crypto.PrivKey{simAccount.PrivKey})
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "invalid transfers"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -131,7 +131,7 @@ func SimulateMsgMultiSend(ak types.AccountKeeper, bk keeper.Keeper) simtypes.Ope
|
||||
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
|
||||
|
||||
if !bk.GetSendEnabled(ctx) {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgMultiSend, "transfers are not enabled"), nil, nil
|
||||
}
|
||||
|
||||
// random number of inputs/outputs between [1, 3]
|
||||
@ -155,7 +155,7 @@ func SimulateMsgMultiSend(ak types.AccountKeeper, bk keeper.Keeper) simtypes.Ope
|
||||
}
|
||||
|
||||
if skip {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgMultiSend, "skip all transfers"), nil, nil
|
||||
}
|
||||
|
||||
// set input address in used address map
|
||||
@ -205,7 +205,7 @@ func SimulateMsgMultiSend(ak types.AccountKeeper, bk keeper.Keeper) simtypes.Ope
|
||||
|
||||
err := sendMsgMultiSend(r, app, bk, ak, msg, ctx, chainID, privs)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "invalid transfers"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
|
||||
@ -5,6 +5,12 @@ import (
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
// bank message types
|
||||
const (
|
||||
TypeMsgSend = "send"
|
||||
TypeMsgMultiSend = "multisend"
|
||||
)
|
||||
|
||||
var _ sdk.Msg = MsgSend{}
|
||||
|
||||
// NewMsgSend - construct arbitrary multi-in, multi-out send msg.
|
||||
@ -16,7 +22,7 @@ func NewMsgSend(fromAddr, toAddr sdk.AccAddress, amount sdk.Coins) MsgSend {
|
||||
func (msg MsgSend) Route() string { return RouterKey }
|
||||
|
||||
// Type Implements Msg.
|
||||
func (msg MsgSend) Type() string { return "send" }
|
||||
func (msg MsgSend) Type() string { return TypeMsgSend }
|
||||
|
||||
// ValidateBasic Implements Msg.
|
||||
func (msg MsgSend) ValidateBasic() error {
|
||||
@ -60,7 +66,7 @@ func NewMsgMultiSend(in []Input, out []Output) MsgMultiSend {
|
||||
func (msg MsgMultiSend) Route() string { return RouterKey }
|
||||
|
||||
// Type Implements Msg
|
||||
func (msg MsgMultiSend) Type() string { return "multisend" }
|
||||
func (msg MsgMultiSend) Type() string { return TypeMsgMultiSend }
|
||||
|
||||
// ValidateBasic Implements Msg.
|
||||
func (msg MsgMultiSend) ValidateBasic() error {
|
||||
|
||||
@ -84,7 +84,7 @@ func SimulateMsgSetWithdrawAddress(ak types.AccountKeeper, bk types.BankKeeper,
|
||||
r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
|
||||
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
|
||||
if !k.GetWithdrawAddrEnabled(ctx) {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSetWithdrawAddress, "withdrawal is not enabled"), nil, nil
|
||||
}
|
||||
|
||||
simAccount, _ := simtypes.RandomAcc(r, accs)
|
||||
@ -95,7 +95,7 @@ func SimulateMsgSetWithdrawAddress(ak types.AccountKeeper, bk types.BankKeeper,
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSetWithdrawAddress, "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
msg := types.NewMsgSetWithdrawAddress(simAccount.Address, simToAccount.Address)
|
||||
@ -112,7 +112,7 @@ func SimulateMsgSetWithdrawAddress(ak types.AccountKeeper, bk types.BankKeeper,
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -127,14 +127,14 @@ func SimulateMsgWithdrawDelegatorReward(ak types.AccountKeeper, bk types.BankKee
|
||||
simAccount, _ := simtypes.RandomAcc(r, accs)
|
||||
delegations := sk.GetAllDelegatorDelegations(ctx, simAccount.Address)
|
||||
if len(delegations) == 0 {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawDelegatorReward, "number of delegators equal 0"), nil, nil
|
||||
}
|
||||
|
||||
delegation := delegations[r.Intn(len(delegations))]
|
||||
|
||||
validator := sk.Validator(ctx, delegation.GetValidatorAddr())
|
||||
if validator == nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, fmt.Errorf("validator %s not found", delegation.GetValidatorAddr())
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawDelegatorReward, "validator is nil"), nil, fmt.Errorf("validator %s not found", delegation.GetValidatorAddr())
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, simAccount.Address)
|
||||
@ -142,7 +142,7 @@ func SimulateMsgWithdrawDelegatorReward(ak types.AccountKeeper, bk types.BankKee
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawDelegatorReward, "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
msg := types.NewMsgWithdrawDelegatorReward(simAccount.Address, validator.GetOperator())
|
||||
@ -159,7 +159,7 @@ func SimulateMsgWithdrawDelegatorReward(ak types.AccountKeeper, bk types.BankKee
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -174,17 +174,17 @@ func SimulateMsgWithdrawValidatorCommission(ak types.AccountKeeper, bk types.Ban
|
||||
|
||||
validator, ok := stakingkeeper.RandomValidator(r, sk, ctx)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawValidatorCommission, "random validator is not ok"), nil, nil
|
||||
}
|
||||
|
||||
commission := k.GetValidatorAccumulatedCommission(ctx, validator.GetOperator())
|
||||
if commission.Commission.IsZero() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawValidatorCommission, "validator commission is zero"), nil, nil
|
||||
}
|
||||
|
||||
simAccount, found := simtypes.FindAccount(accs, sdk.AccAddress(validator.GetOperator()))
|
||||
if !found {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, fmt.Errorf("validator %s not found", validator.GetOperator())
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawValidatorCommission, "could not find account"), nil, fmt.Errorf("validator %s not found", validator.GetOperator())
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, simAccount.Address)
|
||||
@ -192,7 +192,7 @@ func SimulateMsgWithdrawValidatorCommission(ak types.AccountKeeper, bk types.Ban
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgWithdrawValidatorCommission, "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
msg := types.NewMsgWithdrawValidatorCommission(validator.GetOperator())
|
||||
@ -209,7 +209,7 @@ func SimulateMsgWithdrawValidatorCommission(ak types.AccountKeeper, bk types.Ban
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -230,7 +230,7 @@ func SimulateMsgFundCommunityPool(ak types.AccountKeeper, bk types.BankKeeper, k
|
||||
|
||||
fundAmount := simtypes.RandSubsetCoins(r, spendable)
|
||||
if fundAmount.Empty() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgFundCommunityPool, "fund amount is empty"), nil, nil
|
||||
}
|
||||
|
||||
var (
|
||||
@ -242,7 +242,7 @@ func SimulateMsgFundCommunityPool(ak types.AccountKeeper, bk types.BankKeeper, k
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, ctx, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgFundCommunityPool, "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@ -259,7 +259,7 @@ func SimulateMsgFundCommunityPool(ak types.AccountKeeper, bk types.BankKeeper, k
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
|
||||
@ -6,6 +6,14 @@ import (
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
// distribution message types
|
||||
const (
|
||||
TypeMsgSetWithdrawAddress = "set_withdraw_address"
|
||||
TypeMsgWithdrawDelegatorReward = "withdraw_delegator_reward"
|
||||
TypeMsgWithdrawValidatorCommission = "withdraw_validator_commission"
|
||||
TypeMsgFundCommunityPool = "fund_community_pool"
|
||||
)
|
||||
|
||||
// Verify interface at compile time
|
||||
var _, _, _ sdk.Msg = &MsgSetWithdrawAddress{}, &MsgWithdrawDelegatorReward{}, &MsgWithdrawValidatorCommission{}
|
||||
|
||||
@ -17,7 +25,7 @@ func NewMsgSetWithdrawAddress(delAddr, withdrawAddr sdk.AccAddress) MsgSetWithdr
|
||||
}
|
||||
|
||||
func (msg MsgSetWithdrawAddress) Route() string { return ModuleName }
|
||||
func (msg MsgSetWithdrawAddress) Type() string { return "set_withdraw_address" }
|
||||
func (msg MsgSetWithdrawAddress) Type() string { return TypeMsgSetWithdrawAddress }
|
||||
|
||||
// Return address that must sign over msg.GetSignBytes()
|
||||
func (msg MsgSetWithdrawAddress) GetSigners() []sdk.AccAddress {
|
||||
@ -50,7 +58,7 @@ func NewMsgWithdrawDelegatorReward(delAddr sdk.AccAddress, valAddr sdk.ValAddres
|
||||
}
|
||||
|
||||
func (msg MsgWithdrawDelegatorReward) Route() string { return ModuleName }
|
||||
func (msg MsgWithdrawDelegatorReward) Type() string { return "withdraw_delegator_reward" }
|
||||
func (msg MsgWithdrawDelegatorReward) Type() string { return TypeMsgWithdrawDelegatorReward }
|
||||
|
||||
// Return address that must sign over msg.GetSignBytes()
|
||||
func (msg MsgWithdrawDelegatorReward) GetSigners() []sdk.AccAddress {
|
||||
@ -81,7 +89,7 @@ func NewMsgWithdrawValidatorCommission(valAddr sdk.ValAddress) MsgWithdrawValida
|
||||
}
|
||||
|
||||
func (msg MsgWithdrawValidatorCommission) Route() string { return ModuleName }
|
||||
func (msg MsgWithdrawValidatorCommission) Type() string { return "withdraw_validator_commission" }
|
||||
func (msg MsgWithdrawValidatorCommission) Type() string { return TypeMsgWithdrawValidatorCommission }
|
||||
|
||||
// Return address that must sign over msg.GetSignBytes()
|
||||
func (msg MsgWithdrawValidatorCommission) GetSigners() []sdk.AccAddress {
|
||||
@ -102,8 +110,6 @@ func (msg MsgWithdrawValidatorCommission) ValidateBasic() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
const TypeMsgFundCommunityPool = "fund_community_pool"
|
||||
|
||||
// NewMsgFundCommunityPool returns a new MsgFundCommunityPool with a sender and
|
||||
// a funding amount.
|
||||
func NewMsgFundCommunityPool(amount sdk.Coins, depositor sdk.AccAddress) MsgFundCommunityPool {
|
||||
|
||||
@ -113,21 +113,21 @@ func SimulateSubmitProposal(
|
||||
// 1) submit proposal now
|
||||
content := contentSim(r, ctx, accs)
|
||||
if content == nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSubmitProposal, "content is nil"), nil, nil
|
||||
}
|
||||
|
||||
simAccount, _ := simtypes.RandomAcc(r, accs)
|
||||
deposit, skip, err := randomDeposit(r, ctx, ak, bk, k, simAccount.Address)
|
||||
switch {
|
||||
case skip:
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSubmitProposal, "skip deposit"), nil, nil
|
||||
case err != nil:
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgSubmitProposal, "unable to generate deposit"), nil, err
|
||||
}
|
||||
|
||||
msg, err := types.NewMsgSubmitProposal(content, deposit, simAccount.Address)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to generate a submit proposal msg"), nil, err
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, simAccount.Address)
|
||||
@ -138,7 +138,7 @@ func SimulateSubmitProposal(
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, ctx, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@ -154,7 +154,7 @@ func SimulateSubmitProposal(
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
opMsg := simtypes.NewOperationMsg(msg, true, "")
|
||||
@ -162,7 +162,7 @@ func SimulateSubmitProposal(
|
||||
// get the submitted proposal ID
|
||||
proposalID, err := k.GetProposalID(ctx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to generate proposalID"), nil, err
|
||||
}
|
||||
|
||||
// 2) Schedule operations for votes
|
||||
@ -199,15 +199,15 @@ func SimulateMsgDeposit(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Ke
|
||||
simAccount, _ := simtypes.RandomAcc(r, accs)
|
||||
proposalID, ok := randomProposalID(r, k, ctx, types.StatusDepositPeriod)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDeposit, "unable to generate proposalID"), nil, nil
|
||||
}
|
||||
|
||||
deposit, skip, err := randomDeposit(r, ctx, ak, bk, k, simAccount.Address)
|
||||
switch {
|
||||
case skip:
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDeposit, "skip deposit"), nil, nil
|
||||
case err != nil:
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDeposit, "unable to generate deposit"), nil, err
|
||||
}
|
||||
|
||||
msg := types.NewMsgDeposit(simAccount.Address, proposalID, deposit)
|
||||
@ -220,7 +220,7 @@ func SimulateMsgDeposit(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Ke
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, ctx, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@ -236,7 +236,7 @@ func SimulateMsgDeposit(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Ke
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -265,7 +265,7 @@ func operationSimulateMsgVote(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
var ok bool
|
||||
proposalID, ok = randomProposalID(r, k, ctx, types.StatusVotingPeriod)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgVote, "unable to generate proposalID"), nil, nil
|
||||
}
|
||||
default:
|
||||
proposalID = uint64(proposalIDInt)
|
||||
@ -279,7 +279,7 @@ func operationSimulateMsgVote(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
tx := helpers.GenTx(
|
||||
@ -294,7 +294,7 @@ func operationSimulateMsgVote(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
|
||||
@ -52,28 +52,28 @@ func SimulateMsgUnjail(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Kee
|
||||
|
||||
validator, ok := stakingkeeper.RandomValidator(r, sk, ctx)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil // skip
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUnjail, "validator is not ok"), nil, nil // skip
|
||||
}
|
||||
|
||||
simAccount, found := simtypes.FindAccount(accs, sdk.AccAddress(validator.GetOperator()))
|
||||
if !found {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil // skip
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUnjail, "unable to find account"), nil, nil // skip
|
||||
}
|
||||
|
||||
if !validator.IsJailed() {
|
||||
// TODO: due to this condition this message is almost, if not always, skipped !
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUnjail, "validator is not jailed"), nil, nil
|
||||
}
|
||||
|
||||
consAddr := sdk.ConsAddress(validator.GetConsPubKey().Address())
|
||||
info, found := k.GetValidatorSigningInfo(ctx, consAddr)
|
||||
if !found {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil // skip
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUnjail, "unable to find validator signing info"), nil, nil // skip
|
||||
}
|
||||
|
||||
selfDel := sk.Delegation(ctx, simAccount.Address, validator.GetOperator())
|
||||
if selfDel == nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil // skip
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUnjail, "self delegation is nil"), nil, nil // skip
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, sdk.AccAddress(validator.GetOperator()))
|
||||
@ -81,7 +81,7 @@ func SimulateMsgUnjail(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Kee
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUnjail, "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
msg := types.NewMsgUnjail(validator.GetOperator())
|
||||
@ -121,7 +121,7 @@ func SimulateMsgUnjail(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Kee
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, errors.New(res.Log)
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, errors.New(res.Log)
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
|
||||
@ -4,6 +4,11 @@ import (
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
)
|
||||
|
||||
// slashing message types
|
||||
const (
|
||||
TypeMsgUnjail = "unjail"
|
||||
)
|
||||
|
||||
// verify interface at compile time
|
||||
var _ sdk.Msg = &MsgUnjail{}
|
||||
|
||||
@ -15,7 +20,7 @@ func NewMsgUnjail(validatorAddr sdk.ValAddress) MsgUnjail {
|
||||
}
|
||||
|
||||
func (msg MsgUnjail) Route() string { return RouterKey }
|
||||
func (msg MsgUnjail) Type() string { return "unjail" }
|
||||
func (msg MsgUnjail) Type() string { return TypeMsgUnjail }
|
||||
func (msg MsgUnjail) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{sdk.AccAddress(msg.ValidatorAddr)}
|
||||
}
|
||||
|
||||
@ -103,19 +103,19 @@ func SimulateMsgCreateValidator(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
// ensure the validator doesn't exist already
|
||||
_, found := k.GetValidator(ctx, address)
|
||||
if found {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgCreateValidator, "unable to find validator"), nil, nil
|
||||
}
|
||||
|
||||
denom := k.GetParams(ctx).BondDenom
|
||||
|
||||
balance := bk.GetBalance(ctx, simAccount.Address, denom).Amount
|
||||
if !balance.IsPositive() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgCreateValidator, "balance is negative"), nil, nil
|
||||
}
|
||||
|
||||
amount, err := simtypes.RandPositiveInt(r, balance)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgCreateValidator, "unable to generate positive amount"), nil, err
|
||||
}
|
||||
|
||||
selfDelegation := sdk.NewCoin(denom, amount)
|
||||
@ -129,7 +129,7 @@ func SimulateMsgCreateValidator(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, ctx, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgCreateValidator, "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ func SimulateMsgCreateValidator(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -177,12 +177,12 @@ func SimulateMsgEditValidator(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
|
||||
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
|
||||
if len(k.GetAllValidators(ctx)) == 0 {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEditValidator, "number of validators equal zero"), nil, nil
|
||||
}
|
||||
|
||||
val, ok := keeper.RandomValidator(r, k, ctx)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEditValidator, "unable to pick a validator"), nil, nil
|
||||
}
|
||||
|
||||
address := val.GetOperator()
|
||||
@ -191,12 +191,12 @@ func SimulateMsgEditValidator(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
|
||||
if err := val.Commission.ValidateNewRate(newCommissionRate, ctx.BlockHeader().Time); err != nil {
|
||||
// skip as the commission is invalid
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEditValidator, "invalid commission rate"), nil, nil
|
||||
}
|
||||
|
||||
simAccount, found := simtypes.FindAccount(accs, sdk.AccAddress(val.GetOperator()))
|
||||
if !found {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, fmt.Errorf("validator %s not found", val.GetOperator())
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEditValidator, "unable to find account"), nil, fmt.Errorf("validator %s not found", val.GetOperator())
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, simAccount.Address)
|
||||
@ -204,7 +204,7 @@ func SimulateMsgEditValidator(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEditValidator, "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
description := types.NewDescription(
|
||||
@ -229,7 +229,7 @@ func SimulateMsgEditValidator(ak types.AccountKeeper, bk types.BankKeeper, k kee
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -245,28 +245,27 @@ func SimulateMsgDelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper.K
|
||||
denom := k.GetParams(ctx).BondDenom
|
||||
|
||||
if len(k.GetAllValidators(ctx)) == 0 {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDelegate, "number of validators equal zero"), nil, nil
|
||||
}
|
||||
|
||||
simAccount, _ := simtypes.RandomAcc(r, accs)
|
||||
val, ok := keeper.RandomValidator(r, k, ctx)
|
||||
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDelegate, "unable to pick a validator"), nil, nil
|
||||
}
|
||||
|
||||
if val.InvalidExRate() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDelegate, "validator's invalid echange rate"), nil, nil
|
||||
}
|
||||
|
||||
amount := bk.GetBalance(ctx, simAccount.Address, denom).Amount
|
||||
if !amount.IsPositive() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDelegate, "balance is negative"), nil, nil
|
||||
}
|
||||
|
||||
amount, err := simtypes.RandPositiveInt(r, amount)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDelegate, "unable to generate positive amount"), nil, err
|
||||
}
|
||||
|
||||
bondAmt := sdk.NewCoin(denom, amount)
|
||||
@ -280,7 +279,7 @@ func SimulateMsgDelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper.K
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, ctx, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgDelegate, "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@ -298,7 +297,7 @@ func SimulateMsgDelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper.K
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -314,7 +313,7 @@ func SimulateMsgUndelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper
|
||||
// get random validator
|
||||
validator, ok := keeper.RandomValidator(r, k, ctx)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUndelegate, "validator is not ok"), nil, nil
|
||||
}
|
||||
|
||||
valAddr := validator.GetOperator()
|
||||
@ -325,21 +324,21 @@ func SimulateMsgUndelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper
|
||||
delAddr := delegation.GetDelegatorAddr()
|
||||
|
||||
if k.HasMaxUnbondingDelegationEntries(ctx, delAddr, valAddr) {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUndelegate, "keeper does have a max unbonding delegation entries"), nil, nil
|
||||
}
|
||||
|
||||
totalBond := validator.TokensFromShares(delegation.GetShares()).TruncateInt()
|
||||
if !totalBond.IsPositive() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUndelegate, "total bond is negative"), nil, nil
|
||||
}
|
||||
|
||||
unbondAmt, err := simtypes.RandPositiveInt(r, totalBond)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUndelegate, "invalid unbond amount"), nil, err
|
||||
}
|
||||
|
||||
if unbondAmt.IsZero() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgUndelegate, "unbond amount is zero"), nil, nil
|
||||
}
|
||||
|
||||
msg := types.NewMsgUndelegate(
|
||||
@ -357,7 +356,7 @@ func SimulateMsgUndelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper
|
||||
}
|
||||
// if simaccount.PrivKey == nil, delegation address does not exist in accs. Return error
|
||||
if simAccount.PrivKey == nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, fmt.Errorf("delegation addr: %s does not exist in simulation accounts", delAddr)
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "account private key is nil"), nil, fmt.Errorf("delegation addr: %s does not exist in simulation accounts", delAddr)
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, delAddr)
|
||||
@ -365,7 +364,7 @@ func SimulateMsgUndelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
tx := helpers.GenTx(
|
||||
@ -380,7 +379,7 @@ func SimulateMsgUndelegate(ak types.AccountKeeper, bk types.BankKeeper, k keeper
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
@ -396,7 +395,7 @@ func SimulateMsgBeginRedelegate(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
// get random source validator
|
||||
srcVal, ok := keeper.RandomValidator(r, k, ctx)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "unable to pick validator"), nil, nil
|
||||
}
|
||||
|
||||
srcAddr := srcVal.GetOperator()
|
||||
@ -407,42 +406,42 @@ func SimulateMsgBeginRedelegate(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
delAddr := delegation.GetDelegatorAddr()
|
||||
|
||||
if k.HasReceivingRedelegation(ctx, delAddr, srcAddr) {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil // skip
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "receveing redelegation is not allowed"), nil, nil // skip
|
||||
}
|
||||
|
||||
// get random destination validator
|
||||
destVal, ok := keeper.RandomValidator(r, k, ctx)
|
||||
if !ok {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "unable to pick validator"), nil, nil
|
||||
}
|
||||
|
||||
destAddr := destVal.GetOperator()
|
||||
if srcAddr.Equals(destAddr) || destVal.InvalidExRate() || k.HasMaxRedelegationEntries(ctx, delAddr, srcAddr, destAddr) {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "checks failed"), nil, nil
|
||||
}
|
||||
|
||||
totalBond := srcVal.TokensFromShares(delegation.GetShares()).TruncateInt()
|
||||
if !totalBond.IsPositive() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "total bond is negative"), nil, nil
|
||||
}
|
||||
|
||||
redAmt, err := simtypes.RandPositiveInt(r, totalBond)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "unable to generate positive amount"), nil, err
|
||||
}
|
||||
|
||||
if redAmt.IsZero() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "amount is zero"), nil, nil
|
||||
}
|
||||
|
||||
// check if the shares truncate to zero
|
||||
shares, err := srcVal.SharesFromTokens(redAmt)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "invalid shares"), nil, err
|
||||
}
|
||||
|
||||
if srcVal.TokensFromShares(shares).TruncateInt().IsZero() {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, nil // skip
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "shares truncate to zero"), nil, nil // skip
|
||||
}
|
||||
|
||||
// need to retrieve the simulation account associated with delegation to retrieve PrivKey
|
||||
@ -457,7 +456,7 @@ func SimulateMsgBeginRedelegate(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
|
||||
// if simaccount.PrivKey == nil, delegation address does not exist in accs. Return error
|
||||
if simAccount.PrivKey == nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, fmt.Errorf("delegation addr: %s does not exist in simulation accounts", delAddr)
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "account private key is nil"), nil, fmt.Errorf("delegation addr: %s does not exist in simulation accounts", delAddr)
|
||||
}
|
||||
|
||||
account := ak.GetAccount(ctx, delAddr)
|
||||
@ -465,7 +464,7 @@ func SimulateMsgBeginRedelegate(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
|
||||
fees, err := simtypes.RandomFees(r, ctx, spendable)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgBeginRedelegate, "unable to generate fees"), nil, err
|
||||
}
|
||||
|
||||
msg := types.NewMsgBeginRedelegate(
|
||||
@ -485,7 +484,7 @@ func SimulateMsgBeginRedelegate(ak types.AccountKeeper, bk types.BankKeeper, k k
|
||||
|
||||
_, _, err = app.Deliver(tx)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName), nil, err
|
||||
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "unable to deliver tx"), nil, err
|
||||
}
|
||||
|
||||
return simtypes.NewOperationMsg(msg, true, ""), nil, nil
|
||||
|
||||
@ -9,6 +9,15 @@ import (
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
// staking message types
|
||||
const (
|
||||
TypeMsgUndelegate = "begin_unbonding"
|
||||
TypeMsgEditValidator = "edit_validator"
|
||||
TypeMsgCreateValidator = "create_validator"
|
||||
TypeMsgDelegate = "delegate"
|
||||
TypeMsgBeginRedelegate = "begin_redelegate"
|
||||
)
|
||||
|
||||
var (
|
||||
_ sdk.Msg = &MsgCreateValidator{}
|
||||
_ sdk.Msg = &MsgEditValidator{}
|
||||
@ -43,7 +52,7 @@ func NewMsgCreateValidator(
|
||||
func (msg MsgCreateValidator) Route() string { return RouterKey }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgCreateValidator) Type() string { return "create_validator" }
|
||||
func (msg MsgCreateValidator) Type() string { return TypeMsgCreateValidator }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface. It returns the address(es) that
|
||||
// must sign over msg.GetSignBytes().
|
||||
@ -126,7 +135,7 @@ func NewMsgEditValidator(valAddr sdk.ValAddress, description Description, newRat
|
||||
func (msg MsgEditValidator) Route() string { return RouterKey }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) Type() string { return "edit_validator" }
|
||||
func (msg MsgEditValidator) Type() string { return TypeMsgEditValidator }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface.
|
||||
func (msg MsgEditValidator) GetSigners() []sdk.AccAddress {
|
||||
@ -175,7 +184,7 @@ func NewMsgDelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amount sdk.C
|
||||
func (msg MsgDelegate) Route() string { return RouterKey }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) Type() string { return "delegate" }
|
||||
func (msg MsgDelegate) Type() string { return TypeMsgDelegate }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface.
|
||||
func (msg MsgDelegate) GetSigners() []sdk.AccAddress {
|
||||
@ -221,7 +230,7 @@ func NewMsgBeginRedelegate(
|
||||
func (msg MsgBeginRedelegate) Route() string { return RouterKey }
|
||||
|
||||
// Type implements the sdk.Msg interface
|
||||
func (msg MsgBeginRedelegate) Type() string { return "begin_redelegate" }
|
||||
func (msg MsgBeginRedelegate) Type() string { return TypeMsgBeginRedelegate }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface
|
||||
func (msg MsgBeginRedelegate) GetSigners() []sdk.AccAddress {
|
||||
@ -268,7 +277,7 @@ func NewMsgUndelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amount sdk
|
||||
func (msg MsgUndelegate) Route() string { return RouterKey }
|
||||
|
||||
// Type implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) Type() string { return "begin_unbonding" }
|
||||
func (msg MsgUndelegate) Type() string { return TypeMsgUndelegate }
|
||||
|
||||
// GetSigners implements the sdk.Msg interface.
|
||||
func (msg MsgUndelegate) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.DelegatorAddress} }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user