Merge PR #5927: Fix parseQueryResponse
This commit is contained in:
parent
e0c1774e20
commit
22422c6de1
|
@ -6,7 +6,9 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/gogo/protobuf/jsonpb"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
|
|
||||||
|
@ -142,7 +144,7 @@ func CalculateGas(
|
||||||
return sdk.SimulationResponse{}, 0, err
|
return sdk.SimulationResponse{}, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
simRes, err := parseQueryResponse(cdc, rawRes)
|
simRes, err := parseQueryResponse(rawRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return sdk.SimulationResponse{}, 0, err
|
return sdk.SimulationResponse{}, 0, err
|
||||||
}
|
}
|
||||||
|
@ -286,9 +288,9 @@ func adjustGasEstimate(estimate uint64, adjustment float64) uint64 {
|
||||||
return uint64(adjustment * float64(estimate))
|
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
|
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
|
return sdk.SimulationResponse{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,19 +22,20 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestParseQueryResponse(t *testing.T) {
|
func TestParseQueryResponse(t *testing.T) {
|
||||||
cdc := makeCodec()
|
simRes := &sdk.SimulationResponse{
|
||||||
simRes := sdk.SimulationResponse{
|
|
||||||
GasInfo: sdk.GasInfo{GasUsed: 10, GasWanted: 20},
|
GasInfo: sdk.GasInfo{GasUsed: 10, GasWanted: 20},
|
||||||
Result: &sdk.Result{Data: []byte("tx data"), Log: "log"},
|
Result: &sdk.Result{Data: []byte("tx data"), Log: "log"},
|
||||||
}
|
}
|
||||||
|
|
||||||
bz := cdc.MustMarshalBinaryBare(simRes)
|
bz, err := codec.ProtoMarshalJSON(simRes)
|
||||||
res, err := parseQueryResponse(cdc, bz)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
res, err := parseQueryResponse(bz)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, 10, int(res.GasInfo.GasUsed))
|
require.Equal(t, 10, int(res.GasInfo.GasUsed))
|
||||||
require.NotNil(t, res.Result)
|
require.NotNil(t, res.Result)
|
||||||
|
|
||||||
res, err = parseQueryResponse(cdc, []byte("fuzzy"))
|
res, err = parseQueryResponse([]byte("fuzzy"))
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,12 +46,13 @@ func TestCalculateGas(t *testing.T) {
|
||||||
if wantErr {
|
if wantErr {
|
||||||
return nil, 0, errors.New("query failed")
|
return nil, 0, errors.New("query failed")
|
||||||
}
|
}
|
||||||
simRes := sdk.SimulationResponse{
|
simRes := &sdk.SimulationResponse{
|
||||||
GasInfo: sdk.GasInfo{GasUsed: gasUsed, GasWanted: gasUsed},
|
GasInfo: sdk.GasInfo{GasUsed: gasUsed, GasWanted: gasUsed},
|
||||||
Result: &sdk.Result{Data: []byte("tx data"), Log: "log"},
|
Result: &sdk.Result{Data: []byte("tx data"), Log: "log"},
|
||||||
}
|
}
|
||||||
|
|
||||||
return cdc.MustMarshalBinaryBare(simRes), 0, nil
|
bz, _ := codec.ProtoMarshalJSON(simRes)
|
||||||
|
return bz, 0, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue