Skip to content

Commit f3afb2c

Browse files
authored
chore: add events for send packet (#7577)
1 parent 5332645 commit f3afb2c

File tree

3 files changed

+57
-7
lines changed

3 files changed

+57
-7
lines changed

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

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,54 @@ package keeper
22

33
import (
44
"context"
5+
"encoding/hex"
6+
"fmt"
57

68
sdk "github.com/cosmos/cosmos-sdk/types"
79

810
"github.com/cosmos/ibc-go/v9/modules/core/04-channel/v2/types"
911
)
1012

11-
// EmitSendPacketEvents emits events for the SendPacket handler.
12-
func EmitSendPacketEvents(ctx context.Context, packet types.Packet) {
13-
// TODO: https://github.com/cosmos/ibc-go/issues/7386
13+
// emitSendPacketEvents emits events for the SendPacket handler.
14+
func emitSendPacketEvents(ctx context.Context, packet types.Packet) {
15+
sdkCtx := sdk.UnwrapSDKContext(ctx)
16+
17+
sdkCtx.EventManager().EmitEvents(sdk.Events{
18+
sdk.NewEvent(
19+
types.EventTypeSendPacket,
20+
sdk.NewAttribute(types.AttributeKeySrcChannel, packet.SourceChannel),
21+
sdk.NewAttribute(types.AttributeKeyDstChannel, packet.DestinationChannel),
22+
sdk.NewAttribute(types.AttributeKeySequence, fmt.Sprintf("%d", packet.Sequence)),
23+
sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.TimeoutTimestamp)),
24+
sdk.NewAttribute(types.AttributeKeyPayloadLength, fmt.Sprintf("%d", len(packet.Payloads))),
25+
sdk.NewAttribute(types.AttributeKeyVersion, packet.Payloads[0].Version),
26+
sdk.NewAttribute(types.AttributeKeyEncoding, packet.Payloads[0].Encoding),
27+
sdk.NewAttribute(types.AttributeKeyData, hex.EncodeToString(packet.Payloads[0].Value)),
28+
),
29+
sdk.NewEvent(
30+
sdk.EventTypeMessage,
31+
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
32+
),
33+
})
34+
35+
for i, payload := range packet.Payloads {
36+
sdkCtx.EventManager().EmitEvents(sdk.Events{
37+
sdk.NewEvent(
38+
types.EventTypeSendPayload,
39+
sdk.NewAttribute(types.AttributeKeySrcChannel, packet.SourceChannel),
40+
sdk.NewAttribute(types.AttributeKeyDstChannel, packet.DestinationChannel),
41+
sdk.NewAttribute(types.AttributeKeySequence, fmt.Sprintf("%d", packet.Sequence)),
42+
sdk.NewAttribute(types.AttributeKeyPayloadSequence, fmt.Sprintf("%d", i)),
43+
sdk.NewAttribute(types.AttributeKeyVersion, payload.Version),
44+
sdk.NewAttribute(types.AttributeKeyEncoding, payload.Encoding),
45+
sdk.NewAttribute(types.AttributeKeyData, hex.EncodeToString(payload.Value)),
46+
),
47+
sdk.NewEvent(
48+
sdk.EventTypeMessage,
49+
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
50+
),
51+
})
52+
}
1453
}
1554

1655
// EmitRecvPacketEvents emits events for the RecvPacket handler.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func (k *Keeper) sendPacket(
8282

8383
k.Logger(ctx).Info("packet sent", "sequence", strconv.FormatUint(packet.Sequence, 10), "dest_channel_id", packet.DestinationChannel, "src_channel_id", packet.SourceChannel)
8484

85-
EmitSendPacketEvents(ctx, packet)
85+
emitSendPacketEvents(ctx, packet)
8686

8787
return sequence, destChannel, nil
8888
}

modules/core/04-channel/v2/types/events.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,26 @@ import (
88

99
// IBC channel events
1010
const (
11+
EventTypeCreateChannel = "create_channel"
12+
EventTypeRegisterCounterparty = "register_counterparty"
13+
EventTypeSendPacket = "send_packet"
14+
EventTypeSendPayload = "send_payload"
15+
1116
AttributeKeyChannelID = "channel_id"
1217
AttributeKeyClientID = "client_id"
1318
AttributeKeyCounterpartyChannelID = "counterparty_channel_id"
19+
AttributeKeySrcChannel = "packet_source_channel"
20+
AttributeKeyDstChannel = "packet_dest_channel"
21+
AttributeKeySequence = "packet_sequence"
22+
AttributeKeyTimeoutTimestamp = "packet_timeout_timestamp"
23+
AttributeKeyPayloadLength = "packet_payload_length"
24+
AttributeKeyPayloadSequence = "payload_sequence"
25+
AttributeKeyVersion = "payload_version"
26+
AttributeKeyEncoding = "payload_encoding"
27+
AttributeKeyData = "payload_data"
1428
)
1529

1630
// IBC channel events vars
1731
var (
18-
EventTypeCreateChannel = "create_channel"
19-
EventTypeRegisterCounterparty = "register_counterparty"
20-
2132
AttributeValueCategory = fmt.Sprintf("%s_%s", ibcexported.ModuleName, SubModuleName)
2233
)

0 commit comments

Comments
 (0)