@@ -951,11 +951,21 @@ func ParseMsgTransfer(
951951 events := log .GetEventsByType ("send_packet" )
952952 for _ , event := range events {
953953 // Transfer application, MsgTransfer
954- packetData := event .MustGetAttributeByKey ("packet_data" )
955-
956954 var fungiblePacketData * ibc_model.FungibleTokenPacketData
957- if unmarshalErr := jsoniter .Unmarshal ([]byte (packetData ), & fungiblePacketData ); unmarshalErr != nil {
958- panic ("unable to parse `send_packet` event, key `packet_data`" )
955+ if event .HasAttribute ("packet_data" ) {
956+ packetData := event .MustGetAttributeByKey ("packet_data" )
957+ if unmarshalErr := jsoniter .Unmarshal ([]byte (packetData ), & fungiblePacketData ); unmarshalErr != nil {
958+ panic ("unable to parse `send_packet` event, key `packet_data`" )
959+ }
960+ } else if event .HasAttribute ("packet_data_hex" ) {
961+ packetDataHex := event .MustGetAttributeByKey ("packet_data_hex" )
962+ var packetData []byte
963+ packetData , err := hex .DecodeString (packetDataHex )
964+ if err == nil {
965+ if err = json .Unmarshal (packetData , & fungiblePacketData ); err != nil {
966+ parserParams .Logger .Warnf ("error unmarshalling packet data hex" )
967+ }
968+ }
959969 }
960970
961971 if fungiblePacketData != nil {
@@ -999,10 +1009,21 @@ func ParseMsgTransfer(
9991009 panic ("missing `send_packet` event in TxsResult log" )
10001010 }
10011011
1002- packetData := event .MustGetAttributeByKey ("packet_data" )
10031012 var fungiblePacketData ibc_model.FungibleTokenPacketData
1004- if unmarshalErr := jsoniter .Unmarshal ([]byte (packetData ), & fungiblePacketData ); unmarshalErr != nil {
1005- panic ("unable to parse `send_packet` event, key `packet_data`" )
1013+ if event .HasAttribute ("packet_data" ) {
1014+ packetData := event .MustGetAttributeByKey ("packet_data" )
1015+ if unmarshalErr := jsoniter .Unmarshal ([]byte (packetData ), & fungiblePacketData ); unmarshalErr != nil {
1016+ panic ("unable to parse `send_packet` event, key `packet_data`" )
1017+ }
1018+ } else if event .HasAttribute ("packet_data_hex" ) {
1019+ packetDataHex := event .MustGetAttributeByKey ("packet_data_hex" )
1020+ var packetData []byte
1021+ packetData , err := hex .DecodeString (packetDataHex )
1022+ if err == nil {
1023+ if err = json .Unmarshal (packetData , & fungiblePacketData ); err != nil {
1024+ parserParams .Logger .Warnf ("error unmarshalling packet data hex" )
1025+ }
1026+ }
10061027 }
10071028
10081029 msgTransferParams := ibc_model.MsgTransferParams {
@@ -1172,7 +1193,21 @@ func ParseMsgRecvPacket(
11721193 writeAckEvent := log .GetEventByType ("write_acknowledgement" )
11731194 var packetAck ibc_model.MsgRecvPacketPacketAck
11741195 if writeAckEvent != nil {
1175- json .MustUnmarshalFromString (writeAckEvent .MustGetAttributeByKey ("packet_ack" ), & packetAck )
1196+ if writeAckEvent .HasAttribute ("packet_ack" ) {
1197+ json .MustUnmarshalFromString (writeAckEvent .MustGetAttributeByKey ("packet_ack" ), & packetAck )
1198+ }
1199+
1200+ if writeAckEvent .HasAttribute ("packet_ack_hex" ) {
1201+ packetAckHex := writeAckEvent .MustGetAttributeByKey ("packet_ack_hex" )
1202+
1203+ var packetData []byte
1204+ packetData , err = hex .DecodeString (packetAckHex )
1205+ if err == nil {
1206+ if err = json .Unmarshal (packetData , & packetAck ); err != nil {
1207+ panic ("unable to parse `write_acknowledgement` event, key `packet_ack_hex`" )
1208+ }
1209+ }
1210+ }
11761211 }
11771212
11781213 msgRecvPacketParams := ibc_model.MsgRecvPacketParams {
0 commit comments