decred.org/dcrwallet/v3@v3.1.0/wallet/stakepool.go (about) 1 // Copyright (c) 2016 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 wallet 6 7 import ( 8 "context" 9 10 "decred.org/dcrwallet/v3/errors" 11 "decred.org/dcrwallet/v3/wallet/udb" 12 "decred.org/dcrwallet/v3/wallet/walletdb" 13 "github.com/decred/dcrd/txscript/v4/stdaddr" 14 ) 15 16 // StakePoolUserInfo returns the stake pool user information for a user 17 // identified by their voting address. 18 func (w *Wallet) StakePoolUserInfo(ctx context.Context, userAddress stdaddr.StakeAddress) (*udb.StakePoolUser, error) { 19 const op errors.Op = "wallet.StakePoolUserInfo" 20 21 if !w.stakePoolEnabled { 22 return nil, errors.E(op, errors.Invalid, "VSP features are disabled") 23 } 24 25 var user *udb.StakePoolUser 26 err := walletdb.View(ctx, w.db, func(tx walletdb.ReadTx) error { 27 stakemgrNs := tx.ReadBucket(wstakemgrNamespaceKey) 28 var err error 29 user, err = w.stakeMgr.StakePoolUserInfo(stakemgrNs, userAddress) 30 return err 31 }) 32 if err != nil { 33 return nil, errors.E(op, err) 34 } 35 return user, nil 36 }