decred.org/dcrwallet/v3@v3.1.0/wallet/udb/testdata/v3.db.go (about) 1 // Copyright (c) 2017 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 // This file should compiled from the commit the file was introduced, otherwise 6 // it may not compile due to API changes, or may not create the database with 7 // the correct old version. This file should not be updated for API changes. 8 9 package main 10 11 import ( 12 "compress/gzip" 13 "fmt" 14 "io" 15 "os" 16 17 "github.com/decred/dcrd/chaincfg" 18 "github.com/decred/dcrutil/hdkeychain" 19 _ "github.com/decred/dcrwallet/wallet/internal/bdb" 20 "github.com/decred/dcrwallet/wallet/udb" 21 "github.com/decred/dcrwallet/wallet/walletdb" 22 "github.com/decred/dcrwallet/walletseed" 23 ) 24 25 const dbname = "v3.db" 26 27 var ( 28 pubPass = []byte("public") 29 privPass = []byte("private") 30 ) 31 32 var chainParams = &chaincfg.TestNet2Params 33 34 func main() { 35 err := setup() 36 if err != nil { 37 fmt.Fprintf(os.Stderr, "setup: %v\n", err) 38 os.Exit(1) 39 } 40 err = compress() 41 if err != nil { 42 fmt.Fprintf(os.Stderr, "compress: %v\n", err) 43 os.Exit(1) 44 } 45 } 46 47 func setup() error { 48 db, err := walletdb.Create("bdb", dbname) 49 if err != nil { 50 return err 51 } 52 defer db.Close() 53 seed, err := walletseed.GenerateRandomSeed(hdkeychain.RecommendedSeedLen) 54 if err != nil { 55 return err 56 } 57 return udb.Initialize(db, chainParams, seed, pubPass, privPass) 58 } 59 60 func compress() error { 61 db, err := os.Open(dbname) 62 if err != nil { 63 return err 64 } 65 defer os.Remove(dbname) 66 defer db.Close() 67 dbgz, err := os.Create(dbname + ".gz") 68 if err != nil { 69 return err 70 } 71 defer dbgz.Close() 72 gz := gzip.NewWriter(dbgz) 73 _, err = io.Copy(gz, db) 74 if err != nil { 75 return err 76 } 77 return gz.Close() 78 }