Skip to content

Commit e86cdbe

Browse files
Created helper functions for emitting packet events (#343)
* Created helper functions for emitting packet events * Fixed comments and re-ordered helper functions Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
1 parent 7b5a19f commit e86cdbe

File tree

2 files changed

+56
-49
lines changed

2 files changed

+56
-49
lines changed

modules/core/04-channel/keeper/events.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,33 @@ import (
1010
"github.com/cosmos/ibc-go/modules/core/exported"
1111
)
1212

13+
// EmitSendPacketEvent emits an event with packet data along with other packet information for relayer
14+
// to pick up and relay to other chain
15+
func EmitSendPacketEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel, timeoutHeight exported.Height) {
16+
ctx.EventManager().EmitEvents(sdk.Events{
17+
sdk.NewEvent(
18+
types.EventTypeSendPacket,
19+
sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), // DEPRECATED
20+
sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())),
21+
sdk.NewAttribute(types.AttributeKeyTimeoutHeight, timeoutHeight.String()),
22+
sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())),
23+
sdk.NewAttribute(types.AttributeKeySequence, fmt.Sprintf("%d", packet.GetSequence())),
24+
sdk.NewAttribute(types.AttributeKeySrcPort, packet.GetSourcePort()),
25+
sdk.NewAttribute(types.AttributeKeySrcChannel, packet.GetSourceChannel()),
26+
sdk.NewAttribute(types.AttributeKeyDstPort, packet.GetDestPort()),
27+
sdk.NewAttribute(types.AttributeKeyDstChannel, packet.GetDestChannel()),
28+
sdk.NewAttribute(types.AttributeKeyChannelOrdering, channel.Ordering.String()),
29+
// we only support 1-hop packets now, and that is the most important hop for a relayer
30+
// (is it going to a chain I am connected to)
31+
sdk.NewAttribute(types.AttributeKeyConnection, channel.ConnectionHops[0]),
32+
),
33+
sdk.NewEvent(
34+
sdk.EventTypeMessage,
35+
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
36+
),
37+
})
38+
}
39+
1340
// EmitRecvPacketEvent emits a receive packet event. It will be emitted both the first time a packet
1441
// is received for a certain sequence and for all duplicate receives.
1542
func EmitRecvPacketEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel) {
@@ -37,6 +64,33 @@ func EmitRecvPacketEvent(ctx sdk.Context, packet exported.PacketI, channel types
3764
})
3865
}
3966

67+
// EmitWriteAcknowledgementEvent emits an event that the relayer can query for
68+
func EmitWriteAcknowledgementEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel, acknowledgement []byte) {
69+
ctx.EventManager().EmitEvents(sdk.Events{
70+
sdk.NewEvent(
71+
types.EventTypeWriteAck,
72+
sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), // DEPRECATED
73+
sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())),
74+
sdk.NewAttribute(types.AttributeKeyTimeoutHeight, packet.GetTimeoutHeight().String()),
75+
sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())),
76+
sdk.NewAttribute(types.AttributeKeySequence, fmt.Sprintf("%d", packet.GetSequence())),
77+
sdk.NewAttribute(types.AttributeKeySrcPort, packet.GetSourcePort()),
78+
sdk.NewAttribute(types.AttributeKeySrcChannel, packet.GetSourceChannel()),
79+
sdk.NewAttribute(types.AttributeKeyDstPort, packet.GetDestPort()),
80+
sdk.NewAttribute(types.AttributeKeyDstChannel, packet.GetDestChannel()),
81+
sdk.NewAttribute(types.AttributeKeyAck, string(acknowledgement)),
82+
sdk.NewAttribute(types.AttributeKeyAckHex, hex.EncodeToString(acknowledgement)),
83+
// we only support 1-hop packets now, and that is the most important hop for a relayer
84+
// (is it going to a chain I am connected to)
85+
sdk.NewAttribute(types.AttributeKeyConnection, channel.ConnectionHops[0]),
86+
),
87+
sdk.NewEvent(
88+
sdk.EventTypeMessage,
89+
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
90+
),
91+
})
92+
}
93+
4094
// EmitAcknowledgePacketEvent emits an acknowledge packet event. It will be emitted both the first time
4195
// a packet is acknowledged for a certain sequence and for all duplicate acknowledgements.
4296
func EmitAcknowledgePacketEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel) {

modules/core/04-channel/keeper/packet.go

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package keeper
22

33
import (
44
"bytes"
5-
"encoding/hex"
65
"fmt"
76
"time"
87

@@ -126,30 +125,7 @@ func (k Keeper) SendPacket(
126125
k.SetNextSequenceSend(ctx, packet.GetSourcePort(), packet.GetSourceChannel(), nextSequenceSend)
127126
k.SetPacketCommitment(ctx, packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence(), commitment)
128127

129-
// Emit Event with Packet data along with other packet information for relayer to pick up
130-
// and relay to other chain
131-
ctx.EventManager().EmitEvents(sdk.Events{
132-
sdk.NewEvent(
133-
types.EventTypeSendPacket,
134-
sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), // DEPRECATED
135-
sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())),
136-
sdk.NewAttribute(types.AttributeKeyTimeoutHeight, timeoutHeight.String()),
137-
sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())),
138-
sdk.NewAttribute(types.AttributeKeySequence, fmt.Sprintf("%d", packet.GetSequence())),
139-
sdk.NewAttribute(types.AttributeKeySrcPort, packet.GetSourcePort()),
140-
sdk.NewAttribute(types.AttributeKeySrcChannel, packet.GetSourceChannel()),
141-
sdk.NewAttribute(types.AttributeKeyDstPort, packet.GetDestPort()),
142-
sdk.NewAttribute(types.AttributeKeyDstChannel, packet.GetDestChannel()),
143-
sdk.NewAttribute(types.AttributeKeyChannelOrdering, channel.Ordering.String()),
144-
// we only support 1-hop packets now, and that is the most important hop for a relayer
145-
// (is it going to a chain I am connected to)
146-
sdk.NewAttribute(types.AttributeKeyConnection, channel.ConnectionHops[0]),
147-
),
148-
sdk.NewEvent(
149-
sdk.EventTypeMessage,
150-
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
151-
),
152-
})
128+
EmitSendPacketEvent(ctx, packet, channel, timeoutHeight)
153129

154130
k.Logger(ctx).Info(
155131
"packet sent",
@@ -371,30 +347,7 @@ func (k Keeper) WriteAcknowledgement(
371347
// log that a packet acknowledgement has been written
372348
k.Logger(ctx).Info("acknowledged written", "packet", fmt.Sprintf("%v", packet))
373349

374-
// emit an event that the relayer can query for
375-
ctx.EventManager().EmitEvents(sdk.Events{
376-
sdk.NewEvent(
377-
types.EventTypeWriteAck,
378-
sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), // DEPRECATED
379-
sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())),
380-
sdk.NewAttribute(types.AttributeKeyTimeoutHeight, packet.GetTimeoutHeight().String()),
381-
sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())),
382-
sdk.NewAttribute(types.AttributeKeySequence, fmt.Sprintf("%d", packet.GetSequence())),
383-
sdk.NewAttribute(types.AttributeKeySrcPort, packet.GetSourcePort()),
384-
sdk.NewAttribute(types.AttributeKeySrcChannel, packet.GetSourceChannel()),
385-
sdk.NewAttribute(types.AttributeKeyDstPort, packet.GetDestPort()),
386-
sdk.NewAttribute(types.AttributeKeyDstChannel, packet.GetDestChannel()),
387-
sdk.NewAttribute(types.AttributeKeyAck, string(acknowledgement)),
388-
sdk.NewAttribute(types.AttributeKeyAckHex, hex.EncodeToString(acknowledgement)),
389-
// we only support 1-hop packets now, and that is the most important hop for a relayer
390-
// (is it going to a chain I am connected to)
391-
sdk.NewAttribute(types.AttributeKeyConnection, channel.ConnectionHops[0]),
392-
),
393-
sdk.NewEvent(
394-
sdk.EventTypeMessage,
395-
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
396-
),
397-
})
350+
EmitWriteAcknowledgementEvent(ctx, packet, channel, acknowledgement)
398351

399352
return nil
400353
}

0 commit comments

Comments
 (0)