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 }