From 5b7d8b6d82d4d5a50bdb37d8369600f5ef491b9b Mon Sep 17 00:00:00 2001 From: Hieu Vu <72878483+hieuvubk@users.noreply.github.com> Date: Wed, 7 Aug 2024 15:34:00 +0700 Subject: [PATCH] test(stf/mock): Unmarshal with knowing the message type (#21178) --- server/v2/stf/mock/tx.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/server/v2/stf/mock/tx.go b/server/v2/stf/mock/tx.go index 1f56edb202..54237c2ddf 100644 --- a/server/v2/stf/mock/tx.go +++ b/server/v2/stf/mock/tx.go @@ -4,7 +4,9 @@ import ( "crypto/sha256" "encoding/json" "errors" + "reflect" + "github.com/cosmos/gogoproto/proto" gogoproto "github.com/cosmos/gogoproto/types" "cosmossdk.io/core/transaction" @@ -69,7 +71,12 @@ func (t *Tx) Decode(b []byte) { if err != nil { panic(err) } - var msg transaction.Msg + msgName, err := gogoproto.AnyMessageName(rawTx.Msg) + msgType := proto.MessageType(msgName).Elem() + if err != nil { + panic(err) + } + msg := reflect.New(msgType).Interface().(proto.Message) if err := gogoproto.UnmarshalAny(rawTx.Msg, msg); err != nil { panic(err) } @@ -84,7 +91,12 @@ func (t *Tx) DecodeJSON(b []byte) { if err != nil { panic(err) } - var msg transaction.Msg + msgName, err := gogoproto.AnyMessageName(rawTx.Msg) + msgType := proto.MessageType(msgName).Elem() + if err != nil { + panic(err) + } + msg := reflect.New(msgType).Interface().(proto.Message) if err := gogoproto.UnmarshalAny(rawTx.Msg, msg); err != nil { panic(err) }