diff --git a/app/antedecorators/gas.go b/app/antedecorators/gas.go index 63549d9f19..d6b21acdf4 100644 --- a/app/antedecorators/gas.go +++ b/app/antedecorators/gas.go @@ -18,7 +18,7 @@ const ( func GetGasMeterSetter(aclkeeper aclkeeper.Keeper) func(bool, sdk.Context, uint64, sdk.Tx) sdk.Context { return func(simulate bool, ctx sdk.Context, gasLimit uint64, tx sdk.Tx) sdk.Context { if simulate || ctx.BlockHeight() == 0 { - return ctx.WithGasMeter(sdk.NewInfiniteGasMeter()) + return ctx.WithGasMeter(sdk.NewInfiniteGasMeterWithLogger(ctx.Logger(), ctx.TxID())) } denominator := uint64(1) @@ -30,7 +30,7 @@ func GetGasMeterSetter(aclkeeper aclkeeper.Keeper) func(bool, sdk.Context, uint6 denominator = candidateDenominator } } - return ctx.WithGasMeter(types.NewMultiplierGasMeter(gasLimit, DefaultGasMultiplierDenominator, denominator)) + return ctx.WithGasMeter(types.NewMultiplierGasMeter(gasLimit, DefaultGasMultiplierDenominator, denominator, ctx.Logger(), ctx.TxID())) } } diff --git a/app/antedecorators/gasless.go b/app/antedecorators/gasless.go index 990e949e7d..48c48452ad 100644 --- a/app/antedecorators/gasless.go +++ b/app/antedecorators/gasless.go @@ -28,7 +28,7 @@ func NewGaslessDecorator(wrapped []sdk.AnteFullDecorator, oracleKeeper oraclekee func (gd GaslessDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) { originalGasMeter := ctx.GasMeter() // eagerly set infinite gas meter so that queries performed by isTxGasless will not incur gas cost - ctx = ctx.WithGasMeter(sdk.NewInfiniteGasMeter()) + ctx = ctx.WithGasMeter(sdk.NewInfiniteGasMeterWithLogger(ctx.Logger(), ctx.TxID())) feeTx, ok := tx.(sdk.FeeTx) if !ok { diff --git a/app/app_test.go b/app/app_test.go index 0501aab8fe..7b1551547d 100644 --- a/app/app_test.go +++ b/app/app_test.go @@ -6,6 +6,7 @@ import ( "time" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" + sdkstoretypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkacltypes "github.com/cosmos/cosmos-sdk/types/accesscontrol" acltypes "github.com/cosmos/cosmos-sdk/x/accesscontrol/types" @@ -258,7 +259,7 @@ func TestProcessOracleAndOtherTxsSuccess(t *testing.T) { testWrapper.Ctx.WithBlockHeight( 1, ).WithBlockGasMeter( - sdk.NewInfiniteGasMeter(), + sdk.NewInfiniteGasMeterWithLogger(&sdkstoretypes.NoOpLogger{}, "test"), ), txs, req, diff --git a/go.mod b/go.mod index 1b427ac5b9..53cfbcd0ec 100644 --- a/go.mod +++ b/go.mod @@ -267,7 +267,7 @@ require ( replace ( github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.404 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.406 github.com/cosmos/iavl => github.com/sei-protocol/sei-iavl v0.0.1 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 diff --git a/go.sum b/go.sum index 1b4d78febd..e2facb13eb 100644 --- a/go.sum +++ b/go.sum @@ -1066,8 +1066,8 @@ github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod github.com/securego/gosec/v2 v2.11.0 h1:+PDkpzR41OI2jrw1q6AdXZCbsNGNGT7pQjal0H0cArI= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.404 h1:pS9JVO92n+H2Dwv02vlQEScW9fqXX5Ao1QVYKvAFbs8= -github.com/sei-protocol/sei-cosmos v0.1.404/go.mod h1:tvtGG8rshRioPtaZC5C2LiOTVIesUU3O5h9SgSqAIEU= +github.com/sei-protocol/sei-cosmos v0.1.406 h1:HJFfWAhiSIoE81rMc42czmlk1gIyNYCJ13gyqcCVRIc= +github.com/sei-protocol/sei-cosmos v0.1.406/go.mod h1:tvtGG8rshRioPtaZC5C2LiOTVIesUU3O5h9SgSqAIEU= github.com/sei-protocol/sei-iavl v0.0.1 h1:3i3m6T8JHlYBh5JT5A8CNa7hOih4loimwJs5qNYgqU8= github.com/sei-protocol/sei-iavl v0.0.1/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= github.com/sei-protocol/sei-tendermint v0.1.151 h1:zSBXir5FKDJQqhy5k4MzqX3sTqGY3mpMWJ3hmYo5X2w= diff --git a/x/dex/contract/abci.go b/x/dex/contract/abci.go index a2191bf0a0..615bad355c 100644 --- a/x/dex/contract/abci.go +++ b/x/dex/contract/abci.go @@ -111,7 +111,7 @@ func decorateContextForContract(ctx sdk.Context, contractInfo types.ContractInfo whitelistedStore := multi.NewStore(ctx.MultiStore(), GetWhitelistMap(contractInfo.ContractAddr)) newEventManager := sdk.NewEventManager() return ctx.WithContext(goCtx).WithMultiStore(whitelistedStore).WithEventManager(newEventManager).WithGasMeter( - seisync.NewGasWrapper(dexutils.GetGasMeterForLimit(gasLimit)), + seisync.NewGasWrapper(dexutils.GetGasMeterForLimit(gasLimit, ctx.Logger(), fmt.Sprintf("dex-EndBlock-%s", contractInfo.GetContractAddr()))), ) } diff --git a/x/dex/keeper/abci/begin_block_new_block_test.go b/x/dex/keeper/abci/begin_block_new_block_test.go index fa6d1a02fe..a0091fedcb 100644 --- a/x/dex/keeper/abci/begin_block_new_block_test.go +++ b/x/dex/keeper/abci/begin_block_new_block_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + sdkstoretypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" keepertest "github.com/sei-protocol/sei-chain/testutil/keeper" dexcache "github.com/sei-protocol/sei-chain/x/dex/cache" @@ -26,7 +27,7 @@ func TestHandleBBNewBlock(t *testing.T) { ctx := testApp.BaseApp.NewContext(false, tmproto.Header{Time: time.Now()}) ctx = ctx.WithContext(context.WithValue(ctx.Context(), dexutils.DexMemStateContextKey, dexcache.NewMemState(testApp.GetKey(types.StoreKey)))) keeper := testApp.DexKeeper - ctx = ctx.WithGasMeter(sdk.NewInfiniteGasMeter()) + ctx = ctx.WithGasMeter(sdk.NewInfiniteGasMeterWithLogger(&sdkstoretypes.NoOpLogger{}, "test")) keeper.SetContract(ctx, &types.ContractInfoV2{ ContractAddr: TestContract, RentBalance: 100000000, diff --git a/x/dex/keeper/utils/wasm.go b/x/dex/keeper/utils/wasm.go index d9c177c170..671860f9e0 100644 --- a/x/dex/keeper/utils/wasm.go +++ b/x/dex/keeper/utils/wasm.go @@ -47,7 +47,7 @@ func sudo(sdkCtx sdk.Context, k *keeper.Keeper, contractAddress sdk.AccAddress, if err != nil { return nil, 0, err } - tmpCtx := sdkCtx.WithGasMeter(sdk.NewGasMeter(gasLimit)) + tmpCtx := sdkCtx.WithGasMeter(sdk.NewGasMeterWithLogger(gasLimit, sdkCtx.Logger(), fmt.Sprintf("sudo-tmp-%s", contractAddress.String()))) data, err := sudoWithoutOutOfGasPanic(tmpCtx, k, contractAddress, wasmMsg, msgType) gasConsumed := tmpCtx.GasMeter().GasConsumed() sdkCtx.Logger().Debug(fmt.Sprintf("%s %s consumed %d gas", contractAddress.String(), msgType, gasConsumed)) diff --git a/x/dex/module.go b/x/dex/module.go index 8d2749c0cb..cc83cffed6 100644 --- a/x/dex/module.go +++ b/x/dex/module.go @@ -250,7 +250,7 @@ func (am AppModule) beginBlockForContract(ctx sdk.Context, contract types.Contra span.SetAttributes(attribute.String("contract", contractAddr)) defer span.End() - ctx = ctx.WithGasMeter(seisync.NewGasWrapper(dexutils.GetGasMeterForLimit(gasLimit))) + ctx = ctx.WithGasMeter(seisync.NewGasWrapper(dexutils.GetGasMeterForLimit(gasLimit, ctx.Logger(), fmt.Sprintf("dex-BeginBlock-%s", contract.GetContractAddr())))) if contract.NeedHook { if err := am.abciWrapper.HandleBBNewBlock(ctx, contractAddr, epoch); err != nil { diff --git a/x/dex/utils/gas.go b/x/dex/utils/gas.go index e66eba9a9e..60acfc1a3b 100644 --- a/x/dex/utils/gas.go +++ b/x/dex/utils/gas.go @@ -2,13 +2,14 @@ package utils import ( sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/tendermint/tendermint/libs/log" ) const ZeroUserProvidedGas = 0 -func GetGasMeterForLimit(limit uint64) sdk.GasMeter { +func GetGasMeterForLimit(limit uint64, logger log.Logger, meterID string) sdk.GasMeter { if limit == 0 { - return sdk.NewInfiniteGasMeter() + return sdk.NewInfiniteGasMeterWithLogger(logger, meterID) } - return sdk.NewGasMeter(limit) + return sdk.NewGasMeterWithLogger(limit, logger, meterID) }