@@ -2,15 +2,54 @@ package keeper
22
33import (
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.
0 commit comments