Skip to content

Commit 76eaff4

Browse files
committed
fix
1 parent 751ceea commit 76eaff4

File tree

5 files changed

+8
-21
lines changed

5 files changed

+8
-21
lines changed

x/wasm/keeper/handler_plugin.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,6 @@ func (h SDKMessageHandler) handleSdkMessage(ctx sdk.Context, contractAddr sdk.Ad
125125
return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "can't route message %+v", msg)
126126
}
127127

128-
type callDepthMessageHandler struct {
129-
Messenger
130-
MaxCallDepth uint32
131-
}
132-
133-
func (h callDepthMessageHandler) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddress, contractIBCPortID string, msg wasmvmtypes.CosmosMsg) (events []sdk.Event, data [][]byte, msgResponses [][]*codectypes.Any, err error) {
134-
ctx, err = checkAndIncreaseCallDepth(ctx, h.MaxCallDepth)
135-
if err != nil {
136-
return nil, nil, nil, errorsmod.Wrap(err, "dispatch")
137-
}
138-
139-
return h.Messenger.DispatchMsg(ctx, contractAddr, contractIBCPortID, msg)
140-
}
141-
142128
// MessageHandlerChain defines a chain of handlers that are called one by one until it can be handled.
143129
type MessageHandlerChain struct {
144130
handlers []Messenger

x/wasm/keeper/keeper.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,6 +1296,11 @@ func (k *Keeper) handleContractResponse(
12961296
}
12971297
ctx.EventManager().EmitEvents(customEvents)
12981298
}
1299+
// keep track of call depth
1300+
ctx, err := checkAndIncreaseCallDepth(ctx, k.maxCallDepth)
1301+
if err != nil {
1302+
return nil, err
1303+
}
12991304
return k.wasmVMResponseHandler.Handle(ctx, contractAddr, ibcPort, msgs, data)
13001305
}
13011306

x/wasm/keeper/keeper_cgo.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ func NewKeeper(
6767
for _, o := range preOpts {
6868
o.apply(keeper)
6969
}
70-
// always wrap the messenger, even if it was replaced by an option
71-
keeper.messenger = callDepthMessageHandler{keeper.messenger, keeper.maxCallDepth}
7270
// only set the wasmvm if no one set this in the options
7371
// NewVM does a lot, so better not to create it and silently drop it.
7472
if keeper.wasmVM == nil {

x/wasm/keeper/options_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,7 @@ func TestConstructorOptions(t *testing.T) {
5959
"message handler": {
6060
srcOpt: WithMessageHandler(&wasmtesting.MockMessageHandler{}),
6161
verify: func(t *testing.T, k Keeper) {
62-
require.IsType(t, callDepthMessageHandler{}, k.messenger)
63-
messenger, _ := k.messenger.(callDepthMessageHandler)
64-
assert.IsType(t, &wasmtesting.MockMessageHandler{}, messenger.Messenger)
62+
assert.IsType(t, &wasmtesting.MockMessageHandler{}, k.messenger)
6563
},
6664
},
6765
"query plugins": {
@@ -72,7 +70,7 @@ func TestConstructorOptions(t *testing.T) {
7270
},
7371
"message handler decorator": {
7472
srcOpt: WithMessageHandlerDecorator(func(old Messenger) Messenger {
75-
require.IsType(t, callDepthMessageHandler{}, old)
73+
require.IsType(t, &MessageHandlerChain{}, old)
7674
return &wasmtesting.MockMessageHandler{}
7775
}),
7876
verify: func(t *testing.T, k Keeper) {

x/wasm/types/wasmer_engine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
// DefaultMaxQueryStackSize maximum size of the stack of recursive queries a contract can make
1111
const DefaultMaxQueryStackSize uint32 = 10
1212

13-
const DefaultMaxCallDepth uint32 = 500
13+
const DefaultMaxCallDepth uint32 = 100
1414

1515
// WasmEngine defines the WASM contract runtime engine.
1616
type WasmEngine interface {

0 commit comments

Comments
 (0)