github.com/decred/dcrlnd@v0.7.6/channeldb/wallet.go (about)

     1  package channeldb
     2  
     3  import (
     4  	"github.com/decred/dcrlnd/kvdb"
     5  )
     6  
     7  const accountDiscoveryDisabled byte = 1
     8  
     9  var (
    10  	walletBucket              = []byte("wallet")
    11  	disableDiscoverAcctBucket = []byte("discoverAccounts")
    12  )
    13  
    14  func (d *DB) AccountDiscoveryDisabled() (bool, error) {
    15  	var res bool
    16  	err := kvdb.Update(d, func(tx kvdb.RwTx) error {
    17  		wallet, err := tx.CreateTopLevelBucket(walletBucket)
    18  		if err != nil {
    19  			return err
    20  		}
    21  
    22  		disableDiscoverAcct := wallet.Get(disableDiscoverAcctBucket)
    23  		if len(disableDiscoverAcct) == 0 {
    24  			return nil
    25  		}
    26  
    27  		res = disableDiscoverAcct[0] == accountDiscoveryDisabled
    28  		return nil
    29  	}, func() { res = false })
    30  	return res, err
    31  }
    32  
    33  func (d *DB) DisableAccountDiscovery() error {
    34  	return kvdb.Update(d, func(tx kvdb.RwTx) error {
    35  		wallet, err := tx.CreateTopLevelBucket(walletBucket)
    36  		if err != nil {
    37  			return err
    38  		}
    39  
    40  		v := []byte{accountDiscoveryDisabled}
    41  		wallet.Put(disableDiscoverAcctBucket, v)
    42  		return nil
    43  	}, func() {})
    44  }