github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/u2u/genesisstore/store.go (about)

     1  package genesisstore
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/unicornultrafoundation/go-u2u/logger"
     7  	"github.com/unicornultrafoundation/go-u2u/u2u/genesis"
     8  )
     9  
    10  func BlocksSection(i int) string {
    11  	return getSectionName("brs", i)
    12  }
    13  
    14  func EpochsSection(i int) string {
    15  	return getSectionName("ers", i)
    16  }
    17  
    18  func EvmSection(i int) string {
    19  	return getSectionName("evm", i)
    20  }
    21  
    22  type FilesMap func(string) (io.Reader, error)
    23  
    24  // Store is a node persistent storage working over a physical zip archive.
    25  type Store struct {
    26  	fMap  FilesMap
    27  	head  genesis.Header
    28  	close func() error
    29  
    30  	logger.Instance
    31  }
    32  
    33  // NewStore creates store over key-value db.
    34  func NewStore(fMap FilesMap, head genesis.Header, close func() error) *Store {
    35  	return &Store{
    36  		fMap:     fMap,
    37  		head:     head,
    38  		close:    close,
    39  		Instance: logger.New("genesis-store"),
    40  	}
    41  }
    42  
    43  // Close leaves underlying database.
    44  func (s *Store) Close() error {
    45  	s.fMap = nil
    46  	return s.close()
    47  }