From fbde9a97c8f1f82078f799c3c71ca2e75a1c7ebd Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 12 Jul 2017 19:33:45 -0600 Subject: [PATCH] wallet: eliminate some unneeded database transaction opens/commits --- wallet/chainntfns.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/wallet/chainntfns.go b/wallet/chainntfns.go index 58b61b3..419a2b3 100644 --- a/wallet/chainntfns.go +++ b/wallet/chainntfns.go @@ -56,16 +56,21 @@ func (w *Wallet) handleChainNotifications() { notificationName = "recvtx/redeemingtx" case chain.FilteredBlockConnected: // Atomically update for the whole block. - err = walletdb.Update(w.db, func(tx walletdb.ReadWriteTx) error { - var err error - for _, rec := range n.RelevantTxs { - err = w.addRelevantTx(tx, rec, n.Block) - if err != nil { - return err + if len(n.RelevantTxs) > 0 { + err = walletdb.Update(w.db, func( + tx walletdb.ReadWriteTx) error { + var err error + for _, rec := range n.RelevantTxs { + err = w.addRelevantTx(tx, rec, + n.Block) + if err != nil { + return err + } } - } - return nil - }) + return nil + }) + } + notificationName = "filteredblockconnected" // The following are handled by the wallet's rescan // goroutines, so just pass them there.