baseapp: add sdk.Result to simulation response
This commit is contained in:
+10
-2
@@ -326,12 +326,20 @@ func handleQueryApp(app *BaseApp, path []string, req abci.RequestQuery) abci.Res
|
||||
return sdkerrors.QueryResult(sdkerrors.Wrap(err, "failed to decode tx"))
|
||||
}
|
||||
|
||||
gInfo, _, _ := app.Simulate(txBytes, tx)
|
||||
gInfo, res, err := app.Simulate(txBytes, tx)
|
||||
if err != nil {
|
||||
return sdkerrors.QueryResult(sdkerrors.Wrap(err, "failed to simulate tx"))
|
||||
}
|
||||
|
||||
simRes := sdk.SimulationResponse{
|
||||
GasInfo: gInfo,
|
||||
Result: res,
|
||||
}
|
||||
|
||||
return abci.ResponseQuery{
|
||||
Codespace: sdkerrors.RootCodespace,
|
||||
Height: req.Height,
|
||||
Value: codec.Cdc.MustMarshalBinaryBare(gInfo.GasUsed),
|
||||
Value: codec.Cdc.MustMarshalBinaryBare(simRes),
|
||||
}
|
||||
|
||||
case "version":
|
||||
|
||||
@@ -935,10 +935,13 @@ func TestSimulateTx(t *testing.T) {
|
||||
queryResult := app.Query(query)
|
||||
require.True(t, queryResult.IsOK(), queryResult.Log)
|
||||
|
||||
var res uint64
|
||||
err = codec.Cdc.UnmarshalBinaryBare(queryResult.Value, &res)
|
||||
var simRes sdk.SimulationResponse
|
||||
err = codec.Cdc.UnmarshalBinaryBare(queryResult.Value, &simRes)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, gasConsumed, res)
|
||||
require.Equal(t, gInfo, simRes.GasInfo)
|
||||
require.Equal(t, result.Log, simRes.Result.Log)
|
||||
require.Equal(t, result.Events, simRes.Result.Events)
|
||||
require.True(t, bytes.Equal(result.Data, simRes.Result.Data))
|
||||
app.EndBlock(abci.RequestEndBlock{})
|
||||
app.Commit()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user