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