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  }