From 22422c6de1d842b6015c3da62a9ee896557ff9a6 Mon Sep 17 00:00:00 2001 From: Alexander Bezobchuk Date: Fri, 3 Apr 2020 10:59:46 -0400 Subject: [PATCH] Merge PR #5927: Fix parseQueryResponse --- x/auth/client/tx.go | 8 +++++--- x/auth/client/tx_test.go | 16 +++++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/x/auth/client/tx.go b/x/auth/client/tx.go index 09f3146e7..ba19d1be5 100644 --- a/x/auth/client/tx.go +++ b/x/auth/client/tx.go @@ -6,7 +6,9 @@ import ( "fmt" "io/ioutil" "os" + "strings" + "github.com/gogo/protobuf/jsonpb" "github.com/pkg/errors" "github.com/spf13/viper" @@ -142,7 +144,7 @@ func CalculateGas( return sdk.SimulationResponse{}, 0, err } - simRes, err := parseQueryResponse(cdc, rawRes) + simRes, err := parseQueryResponse(rawRes) if err != nil { return sdk.SimulationResponse{}, 0, err } @@ -286,9 +288,9 @@ func adjustGasEstimate(estimate uint64, adjustment float64) uint64 { return uint64(adjustment * float64(estimate)) } -func parseQueryResponse(cdc *codec.Codec, rawRes []byte) (sdk.SimulationResponse, error) { +func parseQueryResponse(bz []byte) (sdk.SimulationResponse, error) { var simRes sdk.SimulationResponse - if err := cdc.UnmarshalBinaryBare(rawRes, &simRes); err != nil { + if err := jsonpb.Unmarshal(strings.NewReader(string(bz)), &simRes); err != nil { return sdk.SimulationResponse{}, err } diff --git a/x/auth/client/tx_test.go b/x/auth/client/tx_test.go index 22e9586d7..ab2ce267e 100644 --- a/x/auth/client/tx_test.go +++ b/x/auth/client/tx_test.go @@ -22,19 +22,20 @@ var ( ) func TestParseQueryResponse(t *testing.T) { - cdc := makeCodec() - simRes := sdk.SimulationResponse{ + simRes := &sdk.SimulationResponse{ GasInfo: sdk.GasInfo{GasUsed: 10, GasWanted: 20}, Result: &sdk.Result{Data: []byte("tx data"), Log: "log"}, } - bz := cdc.MustMarshalBinaryBare(simRes) - res, err := parseQueryResponse(cdc, bz) + bz, err := codec.ProtoMarshalJSON(simRes) + require.NoError(t, err) + + res, err := parseQueryResponse(bz) require.NoError(t, err) require.Equal(t, 10, int(res.GasInfo.GasUsed)) require.NotNil(t, res.Result) - res, err = parseQueryResponse(cdc, []byte("fuzzy")) + res, err = parseQueryResponse([]byte("fuzzy")) require.Error(t, err) } @@ -45,12 +46,13 @@ func TestCalculateGas(t *testing.T) { if wantErr { return nil, 0, errors.New("query failed") } - simRes := sdk.SimulationResponse{ + simRes := &sdk.SimulationResponse{ GasInfo: sdk.GasInfo{GasUsed: gasUsed, GasWanted: gasUsed}, Result: &sdk.Result{Data: []byte("tx data"), Log: "log"}, } - return cdc.MustMarshalBinaryBare(simRes), 0, nil + bz, _ := codec.ProtoMarshalJSON(simRes) + return bz, 0, nil } }