Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnteDecorator ¶
type AnteDecorator struct {
// contains filtered or unexported fields
}
func NewAnteDecorator ¶
func NewAnteDecorator(k *keeper.Keeper) AnteDecorator
func (AnteDecorator) AnteHandle ¶
func (ad AnteDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error)
AnteDecorator returns an error if a multiMsg tx only contains packet messages (Recv, Ack, Timeout) and additional update messages and all packet messages are redundant. If the transaction is just a single UpdateClient message, or the multimsg transaction contains some other message type, then the antedecorator returns no error and continues processing to ensure these transactions are included. This will ensure that relayers do not waste fees on multiMsg transactions when another relayer has already submitted all packets, by rejecting the tx at the mempool layer.
Click to show internal directories.
Click to hide internal directories.