decred.org/dcrwallet/v3@v3.1.0/wallet/udb/metadata.go (about)

     1  // Copyright (c) 2017-2018 The Decred developers
     2  // Use of this source code is governed by an ISC
     3  // license that can be found in the LICENSE file.
     4  
     5  package udb
     6  
     7  import (
     8  	"decred.org/dcrwallet/v3/errors"
     9  	"decred.org/dcrwallet/v3/wallet/walletdb"
    10  )
    11  
    12  type unifiedDBMetadata struct {
    13  }
    14  
    15  var metadataRootBucketKey = []byte("meta")
    16  
    17  func (unifiedDBMetadata) rootBucketKey() []byte { return metadataRootBucketKey }
    18  
    19  const unifiedDBMetadataVersionKey = "ver"
    20  
    21  func (unifiedDBMetadata) putVersion(bucket walletdb.ReadWriteBucket, version uint32) error {
    22  	buf := make([]byte, 4)
    23  	byteOrder.PutUint32(buf, version)
    24  	err := bucket.Put([]byte(unifiedDBMetadataVersionKey), buf)
    25  	if err != nil {
    26  		return errors.E(errors.IO, err)
    27  	}
    28  	return nil
    29  }
    30  
    31  func (unifiedDBMetadata) getVersion(bucket walletdb.ReadBucket) (uint32, error) {
    32  	v := bucket.Get([]byte(unifiedDBMetadataVersionKey))
    33  	if len(v) != 4 {
    34  		return 0, errors.E(errors.IO, errors.Errorf("bad udb version len %d", len(v)))
    35  	}
    36  	return byteOrder.Uint32(v), nil
    37  }