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 }