Skip to content

Commit

Permalink
apply comment
Browse files Browse the repository at this point in the history
  • Loading branch information
yun-yeo committed Nov 1, 2021
1 parent 9ab58ea commit 40f5688
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 deletions.
2 changes: 1 addition & 1 deletion x/wasm/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,5 @@ contract-query-gas-limit = "{{ .WASMConfig.ContractQueryGasLimit }}"
contract-debug-mode = "{{ .WASMConfig.ContractDebugMode }}"
# The write WASM VM memory cache size in MiB not bytes
write-vm-memory-cache-size = "{{ .WASMConfig.ContractMemoryCacheSize }}"
contract-memory-cache-size = "{{ .WASMConfig.ContractMemoryCacheSize }}"
`
40 changes: 20 additions & 20 deletions x/wasm/keeper/contract.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,21 +416,6 @@ func (k Keeper) queryToStore(ctx sdk.Context, contractAddress sdk.AccAddress, ke
return prefixStore.Get(key)
}

func assertQueryDepth(ctx sdk.Context) (uint8, error) {
var queryDepth uint8
if depth := ctx.Context().Value(types.WasmVMQueryDepthContextKey); depth != nil {
queryDepth = depth.(uint8)
} else {
queryDepth = 1
}

if queryDepth > types.ContractMaxQueryDepth {
return queryDepth, types.ErrExceedMaxQueryDepth
}

return queryDepth, nil
}

func (k Keeper) queryToContract(ctx sdk.Context, contractAddress sdk.AccAddress, queryMsg []byte) ([]byte, error) {
defer telemetry.MeasureSince(time.Now(), "wasm", "contract", "query-smart")
ctx.GasMeter().ConsumeGas(types.InstantiateContractCosts(len(queryMsg)), "Loading CosmWasm module: query")
Expand All @@ -442,15 +427,12 @@ func (k Keeper) queryToContract(ctx sdk.Context, contractAddress sdk.AccAddress,

env := types.NewEnv(ctx, contractAddress)

// assert query depth and set new query depth for the next query
queryDepth, err := assertQueryDepth(ctx)
// assert and increase query depth
ctx, err = assertAndIncreaseQueryDepth(ctx)
if err != nil {
return nil, err
}

// set next query depth
ctx = ctx.WithContext(context.WithValue(ctx.Context(), types.WasmVMQueryDepthContextKey, queryDepth+1))

queryResult, gasUsed, err := k.wasmVM.Query(
codeInfo.CodeHash,
env,
Expand All @@ -472,6 +454,24 @@ func (k Keeper) queryToContract(ctx sdk.Context, contractAddress sdk.AccAddress,
return queryResult, err
}

func assertAndIncreaseQueryDepth(ctx sdk.Context) (sdk.Context, error) {
var queryDepth uint8
if depth := ctx.Context().Value(types.WasmVMQueryDepthContextKey); depth != nil {
queryDepth = depth.(uint8)
} else {
queryDepth = 1
}

if queryDepth > types.ContractMaxQueryDepth {
return ctx, types.ErrExceedMaxQueryDepth
}

// set next query depth
ctx = ctx.WithContext(context.WithValue(ctx.Context(), types.WasmVMQueryDepthContextKey, queryDepth+1))

return ctx, nil
}

func (k Keeper) getContractDetails(ctx sdk.Context, contractAddress sdk.AccAddress) (codeInfo types.CodeInfo, contractStorePrefix prefix.Store, err error) {
store := ctx.KVStore(k.storeKey)

Expand Down

0 comments on commit 40f5688

Please sign in to comment.