vspd: Pass dcrd RPC to findSpentTickets as a param
This allows RPC clients to be reused more easily in the case that the caller of findSpentTickets already has a connected dcrd RPC client.
This commit is contained in:
parent
61c9c7087f
commit
c4de3d5d95
@ -88,11 +88,16 @@ func (v *Vspd) checkRevoked(ctx context.Context) error {
|
|||||||
v.log.Warnf("Updating %s in revoked status, this may take a while...",
|
v.log.Warnf("Updating %s in revoked status, this may take a while...",
|
||||||
pluralize(len(revoked), "ticket"))
|
pluralize(len(revoked), "ticket"))
|
||||||
|
|
||||||
|
dcrdClient, _, err := v.dcrd.Client()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// Search for the transactions which spend these tickets, starting at the
|
// Search for the transactions which spend these tickets, starting at the
|
||||||
// earliest height one of them matured.
|
// earliest height one of them matured.
|
||||||
startHeight := revoked.EarliestPurchaseHeight() + int64(v.network.TicketMaturity)
|
startHeight := revoked.EarliestPurchaseHeight() + int64(v.network.TicketMaturity)
|
||||||
|
|
||||||
spent, _, err := v.findSpentTickets(ctx, revoked, startHeight)
|
spent, _, err := v.findSpentTickets(ctx, dcrdClient, revoked, startHeight)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("findSpentTickets error: %w", err)
|
return fmt.Errorf("findSpentTickets error: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import (
|
|||||||
"github.com/decred/dcrd/txscript/v4/stdaddr"
|
"github.com/decred/dcrd/txscript/v4/stdaddr"
|
||||||
"github.com/decred/dcrd/wire"
|
"github.com/decred/dcrd/wire"
|
||||||
"github.com/decred/vspd/database"
|
"github.com/decred/vspd/database"
|
||||||
|
"github.com/decred/vspd/rpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
type spentTicket struct {
|
type spentTicket struct {
|
||||||
@ -64,12 +65,8 @@ func (s *spentTicket) missed() bool {
|
|||||||
// against the block filters of the mainchain blocks between the provided start
|
// against the block filters of the mainchain blocks between the provided start
|
||||||
// block and the current best block. Returns any found spent tickets and the
|
// block and the current best block. Returns any found spent tickets and the
|
||||||
// height of the most recent scanned block.
|
// height of the most recent scanned block.
|
||||||
func (v *Vspd) findSpentTickets(ctx context.Context, toCheck database.TicketList,
|
func (v *Vspd) findSpentTickets(ctx context.Context, dcrdClient *rpc.DcrdRPC,
|
||||||
startHeight int64) ([]spentTicket, int64, error) {
|
toCheck database.TicketList, startHeight int64) ([]spentTicket, int64, error) {
|
||||||
dcrdClient, _, err := v.dcrd.Client()
|
|
||||||
if err != nil {
|
|
||||||
return nil, 0, err
|
|
||||||
}
|
|
||||||
|
|
||||||
endHeight, err := dcrdClient.GetBlockCount()
|
endHeight, err := dcrdClient.GetBlockCount()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -45,7 +45,7 @@ func (v *Vspd) update(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Step 4/4: Set ticket outcome in database if any tickets are voted/revoked.
|
// Step 4/4: Set ticket outcome in database if any tickets are voted/revoked.
|
||||||
v.setOutcomes(ctx)
|
v.setOutcomes(ctx, dcrdClient)
|
||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ func (v *Vspd) addToWallets(ctx context.Context, dcrdClient *rpc.DcrdRPC) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Vspd) setOutcomes(ctx context.Context) {
|
func (v *Vspd) setOutcomes(ctx context.Context, dcrdClient *rpc.DcrdRPC) {
|
||||||
const funcName = "setOutcomes"
|
const funcName = "setOutcomes"
|
||||||
|
|
||||||
votableTickets, err := v.db.GetVotableTickets()
|
votableTickets, err := v.db.GetVotableTickets()
|
||||||
@ -285,7 +285,7 @@ func (v *Vspd) setOutcomes(ctx context.Context) {
|
|||||||
startHeight = v.lastScannedBlock
|
startHeight = v.lastScannedBlock
|
||||||
}
|
}
|
||||||
|
|
||||||
spent, endHeight, err := v.findSpentTickets(ctx, votableTickets, startHeight)
|
spent, endHeight, err := v.findSpentTickets(ctx, dcrdClient, votableTickets, startHeight)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Don't log error if shutdown was requested, just return.
|
// Don't log error if shutdown was requested, just return.
|
||||||
if errors.Is(err, context.Canceled) {
|
if errors.Is(err, context.Canceled) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user