github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/baseapp/baseapp_mode_deliverInAsync.go (about) 1 package baseapp 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 ) 6 7 func (m *modeHandlerDeliverInAsync) handleDeferRefund(info *runTxInfo) { 8 app := m.app 9 10 if app.GasRefundHandler == nil { 11 return 12 } 13 if info.msCacheAnte == nil { 14 return 15 } 16 var gasRefundCtx sdk.Context 17 gasRefundCtx = info.runMsgCtx 18 if info.msCache == nil || !info.runMsgFinished { // case: panic when runMsg 19 info.msCache = app.parallelTxManage.chainMultiStores.GetStoreWithParent(info.msCacheAnte) 20 gasRefundCtx = info.ctx 21 gasRefundCtx.SetMultiStore(info.msCache) 22 } 23 24 refundGas, err := app.GasRefundHandler(gasRefundCtx, info.tx) 25 if err != nil { 26 panic(err) 27 } 28 info.msCache.Write() 29 info.ctx.ParaMsg().RefundFee = refundGas 30 } 31 32 func (m *modeHandlerDeliverInAsync) handleDeferGasConsumed(info *runTxInfo) { 33 } 34 func (m *modeHandlerDeliverInAsync) handleRunMsg(info *runTxInfo) (err error) { 35 app := m.app 36 mode := m.mode 37 38 info.msCache = app.parallelTxManage.chainMultiStores.GetStoreWithParent(info.msCacheAnte) 39 info.runMsgCtx = info.ctx 40 info.runMsgCtx.SetMultiStore(info.msCache) 41 42 info.result, err = app.runMsgs(info.runMsgCtx, info.tx.GetMsgs(), mode) 43 info.runMsgFinished = true 44 if err == nil { 45 info.msCache.Write() 46 } 47 err = m.checkHigherThanMercury(err, info) 48 49 return 50 } 51 52 // ==================================================== 53 // 2. handleGasConsumed 54 func (m *modeHandlerDeliverInAsync) handleGasConsumed(info *runTxInfo) (err error) { 55 m.app.parallelTxManage.blockGasMeterMu.Lock() 56 defer m.app.parallelTxManage.blockGasMeterMu.Unlock() 57 return m.modeHandlerBase.handleGasConsumed(info) 58 }