github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/apps/29-fee/keeper/events.go (about)

     1  package keeper
     2  
     3  import (
     4  	"fmt"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  
     8  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/29-fee/types"
     9  	channeltypes "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/04-channel/types"
    10  )
    11  
    12  // EmitIncentivizedPacketEvent emits an event containing information on the total amount of fees incentivizing
    13  // a specific packet. It should be emitted on every fee escrowed for the given packetID.
    14  func EmitIncentivizedPacketEvent(ctx sdk.Context, packetID channeltypes.PacketId, packetFees types.PacketFees) {
    15  	var (
    16  		totalRecvFees    sdk.CoinAdapters
    17  		totalAckFees     sdk.CoinAdapters
    18  		totalTimeoutFees sdk.CoinAdapters
    19  	)
    20  
    21  	for _, fee := range packetFees.PacketFees {
    22  		// only emit total fees for packet fees which allow any relayer to relay
    23  		if fee.Relayers == nil {
    24  			totalRecvFees = totalRecvFees.Add(fee.Fee.RecvFee...)
    25  			totalAckFees = totalAckFees.Add(fee.Fee.AckFee...)
    26  			totalTimeoutFees = totalTimeoutFees.Add(fee.Fee.TimeoutFee...)
    27  		}
    28  	}
    29  
    30  	ctx.EventManager().EmitEvents(sdk.Events{
    31  		sdk.NewEvent(
    32  			types.EventTypeIncentivizedPacket,
    33  			sdk.NewAttribute(channeltypes.AttributeKeyPortID, packetID.PortId),
    34  			sdk.NewAttribute(channeltypes.AttributeKeyChannelID, packetID.ChannelId),
    35  			sdk.NewAttribute(channeltypes.AttributeKeySequence, fmt.Sprint(packetID.Sequence)),
    36  			sdk.NewAttribute(types.AttributeKeyRecvFee, totalRecvFees.String()),
    37  			sdk.NewAttribute(types.AttributeKeyAckFee, totalAckFees.String()),
    38  			sdk.NewAttribute(types.AttributeKeyTimeoutFee, totalTimeoutFees.String()),
    39  		),
    40  		sdk.NewEvent(
    41  			sdk.EventTypeMessage,
    42  			sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
    43  		),
    44  	})
    45  }
    46  
    47  // EmitRegisterPayeeEvent emits an event containing information of a registered payee for a relayer on a particular channel
    48  func EmitRegisterPayeeEvent(ctx sdk.Context, relayer, payee, channelID string) {
    49  	ctx.EventManager().EmitEvents(sdk.Events{
    50  		sdk.NewEvent(
    51  			types.EventTypeRegisterPayee,
    52  			sdk.NewAttribute(types.AttributeKeyRelayer, relayer),
    53  			sdk.NewAttribute(types.AttributeKeyPayee, payee),
    54  			sdk.NewAttribute(types.AttributeKeyChannelID, channelID),
    55  		),
    56  		sdk.NewEvent(
    57  			sdk.EventTypeMessage,
    58  			sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
    59  		),
    60  	})
    61  }
    62  
    63  // EmitRegisterCounterpartyPayeeEvent emits an event containing information of a registered counterparty payee for a relayer on a particular channel
    64  func EmitRegisterCounterpartyPayeeEvent(ctx sdk.Context, relayer, counterpartyPayee, channelID string) {
    65  	ctx.EventManager().EmitEvents(sdk.Events{
    66  		sdk.NewEvent(
    67  			types.EventTypeRegisterCounterpartyPayee,
    68  			sdk.NewAttribute(types.AttributeKeyRelayer, relayer),
    69  			sdk.NewAttribute(types.AttributeKeyCounterpartyPayee, counterpartyPayee),
    70  			sdk.NewAttribute(types.AttributeKeyChannelID, channelID),
    71  		),
    72  		sdk.NewEvent(
    73  			sdk.EventTypeMessage,
    74  			sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName),
    75  		),
    76  	})
    77  }