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  }