github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/gossip/blockproc/interface.go (about) 1 package blockproc 2 3 import ( 4 "github.com/unicornultrafoundation/go-u2u/core/state" 5 "github.com/unicornultrafoundation/go-u2u/core/types" 6 "github.com/unicornultrafoundation/go-u2u/params" 7 8 "github.com/unicornultrafoundation/go-helios/native/idx" 9 "github.com/unicornultrafoundation/go-u2u/evmcore" 10 "github.com/unicornultrafoundation/go-u2u/native" 11 "github.com/unicornultrafoundation/go-u2u/native/iblockproc" 12 "github.com/unicornultrafoundation/go-u2u/u2u" 13 ) 14 15 type TxListener interface { 16 OnNewLog(*types.Log) 17 OnNewReceipt(tx *types.Transaction, r *types.Receipt, originator idx.ValidatorID) 18 Finalize() iblockproc.BlockState 19 Update(bs iblockproc.BlockState, es iblockproc.EpochState) 20 } 21 22 type TxListenerModule interface { 23 Start(block iblockproc.BlockCtx, bs iblockproc.BlockState, es iblockproc.EpochState, statedb *state.StateDB) TxListener 24 } 25 26 type TxTransactor interface { 27 PopInternalTxs(block iblockproc.BlockCtx, bs iblockproc.BlockState, es iblockproc.EpochState, sealing bool, statedb *state.StateDB) types.Transactions 28 } 29 30 type SealerProcessor interface { 31 EpochSealing() bool 32 SealEpoch() (iblockproc.BlockState, iblockproc.EpochState) 33 Update(bs iblockproc.BlockState, es iblockproc.EpochState) 34 } 35 36 type SealerModule interface { 37 Start(block iblockproc.BlockCtx, bs iblockproc.BlockState, es iblockproc.EpochState) SealerProcessor 38 } 39 40 type ConfirmedEventsProcessor interface { 41 ProcessConfirmedEvent(native.EventI) 42 Finalize(block iblockproc.BlockCtx, blockSkipped bool) iblockproc.BlockState 43 } 44 45 type ConfirmedEventsModule interface { 46 Start(bs iblockproc.BlockState, es iblockproc.EpochState) ConfirmedEventsProcessor 47 } 48 49 type EVMProcessor interface { 50 Execute(txs types.Transactions) types.Receipts 51 Finalize() (evmBlock *evmcore.EvmBlock, skippedTxs []uint32, receipts types.Receipts) 52 } 53 54 type EVM interface { 55 Start(block iblockproc.BlockCtx, statedb *state.StateDB, reader evmcore.DummyChain, onNewLog func(*types.Log), net u2u.Rules, evmCfg *params.ChainConfig) EVMProcessor 56 }