Multi wallet fix (#83)

* Fix min required check

* Remove duplicated host logging on conn errors.

* Show confirmed tickets on homepage.
This commit is contained in:
Jamie Holdstock 2020-05-28 15:01:44 +01:00 committed by GitHub
parent 225dcaf29e
commit 1a507badc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 26 additions and 27 deletions

View File

@ -112,14 +112,13 @@ func (n *NotificationHandler) Notify(method string, params json.RawMessage) erro
for i := 0; i < len(n.WalletConnect); i++ {
walletConn, err := n.WalletConnect[i]()
if err != nil {
// TODO: what host?
log.Errorf("dcrwallet connection error: %v", err)
// If this fails, there is nothing more we can do. Return.
return nil
}
walletClients[i], err = rpc.WalletClient(n.Ctx, walletConn, n.NetParams)
if err != nil {
log.Errorf("dcrwallet '%s' client error: %v", walletConn.String(), err)
log.Errorf("dcrwallet client error: %v", err)
// If this fails, there is nothing more we can do. Return.
return nil
}

View File

@ -305,7 +305,7 @@ func loadConfig() (*config, error) {
}
// Verify minimum number of voting wallets are configured.
if minRequired < len(cfg.WalletHosts) {
if len(cfg.WalletHosts) < minRequired {
return nil, fmt.Errorf("minimum required voting wallets has not been met: %d < %d",
len(cfg.WalletHosts), minRequired)
}

View File

@ -142,7 +142,7 @@ func (vdb *VspDatabase) CountTickets() (int, int, error) {
return fmt.Errorf("could not unmarshal ticket: %v", err)
}
if ticket.FeeTxHash != "" {
if ticket.FeeConfirmed {
feePaid++
}

View File

@ -91,14 +91,14 @@ func run(ctx context.Context) error {
cfg.WalletHosts[i], cfg.walletCert, nil)
walletConn[i], err = walletConnect[i]()
if err != nil {
log.Errorf("dcrwallet '%s' connection error: %v", cfg.WalletHosts[i], err)
log.Errorf("dcrwallet connection error: %v", err)
requestShutdown()
shutdownWg.Wait()
return err
}
_, err = rpc.WalletClient(ctx, walletConn[i], cfg.netParams.Params)
if err != nil {
log.Errorf("dcrwallet '%s' client error: %v", cfg.WalletHosts[i], err)
log.Errorf("dcrwallet client error: %v", err)
requestShutdown()
shutdownWg.Wait()
return err

View File

@ -74,7 +74,7 @@ func Setup(ctx context.Context, shutdownWg *sync.WaitGroup, user, pass, addr str
if c != nil {
select {
case <-c.Done():
log.Debugf("RPC client errored (%v); reconnecting...", c.Err())
log.Debugf("RPC client %s errored (%v); reconnecting...", addr, c.Err())
c = nil
default:
return c, nil

View File

@ -10,32 +10,32 @@ import (
)
type vspStats struct {
PubKey []byte
TotalTickets int
FeePaidTickets int
VSPFee float64
Network string
UpdateTime string
SupportEmail string
VspClosed bool
PubKey []byte
TotalTickets int
FeeConfirmedTickets int
VSPFee float64
Network string
UpdateTime string
SupportEmail string
VspClosed bool
}
var stats *vspStats
func updateVSPStats(db *database.VspDatabase, cfg Config) (*vspStats, error) {
total, feePaid, err := db.CountTickets()
total, feeConfirmed, err := db.CountTickets()
if err != nil {
return nil, err
}
return &vspStats{
PubKey: signPubKey,
TotalTickets: total,
FeePaidTickets: feePaid,
VSPFee: cfg.VSPFee,
Network: cfg.NetParams.Name,
UpdateTime: time.Now().Format("Mon Jan _2 15:04:05 2006"),
SupportEmail: cfg.SupportEmail,
VspClosed: cfg.VspClosed,
PubKey: signPubKey,
TotalTickets: total,
FeeConfirmedTickets: feeConfirmed,
VSPFee: cfg.VSPFee,
Network: cfg.NetParams.Name,
UpdateTime: time.Now().Format("Mon Jan _2 15:04:05 2006"),
SupportEmail: cfg.SupportEmail,
VspClosed: cfg.VspClosed,
}, nil
}

View File

@ -41,13 +41,13 @@ func withWalletClient() gin.HandlerFunc {
for i := 0; i < len(walletConnect); i++ {
walletConn, err := walletConnect[i]()
if err != nil {
log.Errorf("dcrwallet '%s' connection error: %v", err)
log.Errorf("dcrwallet connection error: %v", err)
sendErrorResponse("dcrwallet RPC error", http.StatusInternalServerError, c)
return
}
walletClient[i], err = rpc.WalletClient(c, walletConn, cfg.NetParams)
if err != nil {
log.Errorf("dcrwallet '%s' client error: %v", walletClient[i].String(), err)
log.Errorf("dcrwallet client error: %v", err)
sendErrorResponse("dcrwallet RPC error", http.StatusInternalServerError, c)
return
}

View File

@ -43,7 +43,7 @@
<img src="/public/images/decred-logo.svg" />
<table>
<tr><td>Total tickets:</td><td>{{ .TotalTickets }}</td></tr>
<tr><td>FeePaid tickets:</td><td>{{ .FeePaidTickets }}</td></tr>
<tr><td>Fee confirmed tickets:</td><td>{{ .FeeConfirmedTickets }}</td></tr>
<tr><td>VSP Fee:</td><td>{{ .VSPFee }}</td></tr>
<tr><td>Network:</td><td>{{ .Network }}</td></tr>
<tr><td>Support:</td><td>{{ .SupportEmail }}</td></tr>