From 83b418f7cdfa6f21aa73a483a4bdf6c11f5cf2c8 Mon Sep 17 00:00:00 2001 From: yihuang Date: Wed, 3 Apr 2024 14:43:43 +0800 Subject: [PATCH] Problem: block gas used not set in context Solution: - fix the way context is updated --- baseapp/abci.go | 6 ++++-- baseapp/baseapp.go | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/baseapp/abci.go b/baseapp/abci.go index ff391460f536e..3ca25ed765cc0 100644 --- a/baseapp/abci.go +++ b/baseapp/abci.go @@ -800,9 +800,11 @@ func (app *BaseApp) internalFinalizeBlock(ctx context.Context, req *abci.Request for _, res := range txResults { blockGasUsed += uint64(res.GasUsed) } - sdkCtx := app.finalizeBlockState.Context().WithBlockGasUsed(blockGasUsed) + app.finalizeBlockState.SetContext( + app.finalizeBlockState.Context().WithBlockGasUsed(blockGasUsed), + ) - endBlock, err := app.endBlock(sdkCtx) + endBlock, err := app.endBlock(ctx) if err != nil { return nil, err } diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index aee79df5f6589..99bbdcd1d2c7c 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -807,7 +807,7 @@ func (app *BaseApp) deliverTxWithMultiStore(tx []byte, txIndex int, txMultiStore // endBlock is an application-defined function that is called after transactions // have been processed in FinalizeBlock. -func (app *BaseApp) endBlock(ctx context.Context) (sdk.EndBlock, error) { +func (app *BaseApp) endBlock(_ context.Context) (sdk.EndBlock, error) { var endblock sdk.EndBlock if app.endBlocker != nil {