From 4b1cc72e6d9013a438db82c226b1739cd3bcd747 Mon Sep 17 00:00:00 2001 From: loloicci Date: Fri, 21 Apr 2023 18:34:03 +0900 Subject: [PATCH] fix: stop wrap twice non-plus wasm hander's response fix https://github.com/Finschia/wasmd/issues/33 --- x/wasmplus/handler.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/x/wasmplus/handler.go b/x/wasmplus/handler.go index 4518160d56..101dfcca06 100644 --- a/x/wasmplus/handler.go +++ b/x/wasmplus/handler.go @@ -18,18 +18,21 @@ func NewHandler(k wasmtypes.ContractOpsKeeper) sdk.Handler { wasmHandler := wasm.NewHandler(k) return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { - var ( - res proto.Message - err error - ) - res, err = wasmHandler(ctx, msg) + res, err := wasmHandler(ctx, msg) if err != nil && strings.Contains(err.Error(), "MsgStoreCodeAndInstantiateContract") { // handle wasmplus service msg2, ok := msg.(*types.MsgStoreCodeAndInstantiateContract) if ok { + var ( + res proto.Message + err error + ) res, err = msgServer.StoreCodeAndInstantiateContract(sdk.WrapSDKContext(ctx), msg2) + return sdk.WrapServiceResult(ctx, res, err) + } else { + return nil, err } } - return sdk.WrapServiceResult(ctx, res, err) + return res, err } }