github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/gossip/evmstore/store_block_cache.go (about)

     1  package evmstore
     2  
     3  import (
     4  	"github.com/unicornultrafoundation/go-helios/native/idx"
     5  	"github.com/unicornultrafoundation/go-u2u/common"
     6  
     7  	"github.com/unicornultrafoundation/go-u2u/evmcore"
     8  )
     9  
    10  func (s *Store) GetCachedEvmBlock(n idx.Block) *evmcore.EvmBlock {
    11  	c, ok := s.cache.EvmBlocks.Get(n)
    12  	if !ok {
    13  		return nil
    14  	}
    15  
    16  	return c.(*evmcore.EvmBlock)
    17  }
    18  
    19  func (s *Store) SetCachedEvmBlock(n idx.Block, b *evmcore.EvmBlock) {
    20  	var empty = common.Hash{}
    21  	if b.EvmHeader.TxHash == empty {
    22  		panic("You have to cache only completed blocks (with txs)")
    23  	}
    24  	s.cache.EvmBlocks.Add(n, b, uint(b.EstimateSize()))
    25  }