github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/gossip/blockproc/verwatcher/store_network_version.go (about) 1 package verwatcher 2 3 import ( 4 "github.com/unicornultrafoundation/go-helios/common/bigendian" 5 ) 6 7 const ( 8 nvKey = "v" 9 mvKey = "m" 10 ) 11 12 // SetNetworkVersion stores network version. 13 func (s *Store) SetNetworkVersion(v uint64) { 14 s.cache.networkVersion.Store(v) 15 err := s.mainDB.Put([]byte(nvKey), bigendian.Uint64ToBytes(v)) 16 if err != nil { 17 s.Log.Crit("Failed to put key", "err", err) 18 } 19 } 20 21 // GetNetworkVersion returns stored network version. 22 func (s *Store) GetNetworkVersion() uint64 { 23 if v := s.cache.networkVersion.Load(); v != nil { 24 return v.(uint64) 25 } 26 valBytes, err := s.mainDB.Get([]byte(nvKey)) 27 if err != nil { 28 s.Log.Crit("Failed to get key", "err", err) 29 } 30 v := uint64(0) 31 if valBytes != nil { 32 v = bigendian.BytesToUint64(valBytes) 33 } 34 s.cache.networkVersion.Store(v) 35 return v 36 } 37 38 // SetMissedVersion stores non-supported network upgrade. 39 func (s *Store) SetMissedVersion(v uint64) { 40 s.cache.missedVersion.Store(v) 41 err := s.mainDB.Put([]byte(mvKey), bigendian.Uint64ToBytes(v)) 42 if err != nil { 43 s.Log.Crit("Failed to put key", "err", err) 44 } 45 } 46 47 // GetMissedVersion returns stored non-supported network upgrade. 48 func (s *Store) GetMissedVersion() uint64 { 49 if v := s.cache.missedVersion.Load(); v != nil { 50 return v.(uint64) 51 } 52 valBytes, err := s.mainDB.Get([]byte(mvKey)) 53 if err != nil { 54 s.Log.Crit("Failed to get key", "err", err) 55 } 56 v := uint64(0) 57 if valBytes != nil { 58 v = bigendian.BytesToUint64(valBytes) 59 } 60 s.cache.missedVersion.Store(v) 61 return v 62 }