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 }