28 lines
926 B
Go
28 lines
926 B
Go
package ante
|
|
|
|
import (
|
|
"github.com/cosmos/cosmos-sdk/types"
|
|
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
|
)
|
|
|
|
// RejectFeeGranterDecorator is an AnteDecorator which rejects transactions which
|
|
// have the Fee.granter field set. It is to be used by chains which do not support
|
|
// fee grants.
|
|
type RejectFeeGranterDecorator struct{}
|
|
|
|
// NewRejectFeeGranterDecorator returns a new RejectFeeGranterDecorator.
|
|
func NewRejectFeeGranterDecorator() RejectFeeGranterDecorator {
|
|
return RejectFeeGranterDecorator{}
|
|
}
|
|
|
|
var _ types.AnteDecorator = RejectFeeGranterDecorator{}
|
|
|
|
func (d RejectFeeGranterDecorator) AnteHandle(ctx types.Context, tx types.Tx, simulate bool, next types.AnteHandler) (newCtx types.Context, err error) {
|
|
feeTx, ok := tx.(types.FeeTx)
|
|
if ok && len(feeTx.FeeGranter()) != 0 {
|
|
return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "fee grants are not supported")
|
|
}
|
|
|
|
return next(ctx, tx, simulate)
|
|
}
|