2022-01-08 00:39:27 +00:00
|
|
|
package ante
|
|
|
|
|
|
|
|
import (
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
|
|
|
vesting "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"
|
|
|
|
)
|
|
|
|
|
2022-06-06 16:07:31 +00:00
|
|
|
var _ sdk.AnteDecorator = VestingAccountDecorator{}
|
|
|
|
|
2022-01-08 00:39:27 +00:00
|
|
|
// VestingAccountDecorator blocks MsgCreateVestingAccount from reaching the mempool
|
|
|
|
type VestingAccountDecorator struct{}
|
|
|
|
|
|
|
|
func NewVestingAccountDecorator() VestingAccountDecorator {
|
|
|
|
return VestingAccountDecorator{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (vad VestingAccountDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) {
|
|
|
|
for _, msg := range tx.GetMsgs() {
|
|
|
|
if _, ok := msg.(*vesting.MsgCreateVestingAccount); ok {
|
|
|
|
return ctx, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "MsgCreateVestingAccount not supported")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return next(ctx, tx, simulate)
|
|
|
|
}
|