github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/infura/keeper.go (about) 1 package infura 2 3 import ( 4 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/log" 5 "github.com/fibonacci-chain/fbc/x/common/monitor" 6 evm "github.com/fibonacci-chain/fbc/x/evm/watcher" 7 ) 8 9 // nolint 10 type Keeper struct { 11 metric *monitor.StreamMetrics 12 stream *Stream 13 } 14 15 // nolint 16 func NewKeeper(evmKeeper EvmKeeper, logger log.Logger, metrics *monitor.StreamMetrics) Keeper { 17 logger = logger.With("module", "infura") 18 k := Keeper{ 19 metric: metrics, 20 stream: NewStream(logger), 21 } 22 if k.stream.enable { 23 evmKeeper.SetObserverKeeper(k) 24 } 25 return k 26 } 27 28 func (k Keeper) OnSaveTransactionReceipt(tr evm.TransactionReceipt) { 29 k.stream.cache.AddTransactionReceipt(tr) 30 } 31 32 func (k Keeper) OnSaveBlock(b evm.Block) { 33 k.stream.cache.AddBlock(b) 34 } 35 36 func (k Keeper) OnSaveTransaction(t evm.Transaction) { 37 k.stream.cache.AddTransaction(t) 38 } 39 40 func (k Keeper) OnSaveContractCode(address string, code []byte) { 41 k.stream.cache.AddContractCode(address, code) 42 }