OSDN Git Service

refactor list-transactions
authoroysheng <oysheng@bytom.io>
Tue, 5 Jun 2018 07:30:47 +0000 (15:30 +0800)
committeroysheng <oysheng@bytom.io>
Tue, 5 Jun 2018 07:50:36 +0000 (15:50 +0800)
wallet/indexer.go
wallet/unconfirmed.go

index 00a52a0..c6e07ac 100644 (file)
@@ -194,6 +194,7 @@ func (w *Wallet) indexTransactions(batch db.Batch, b *types.Block, txStatus *bc.
        annotatedTxs := w.filterAccountTxs(b, txStatus)
        saveExternalAssetDefinition(b, w.DB)
        annotateTxsAccount(annotatedTxs, w.DB)
+       annotateTxsAsset(w, annotatedTxs)
 
        for _, tx := range annotatedTxs {
                rawTx, err := json.Marshal(tx)
@@ -500,7 +501,6 @@ func findTransactionsByAccount(annotatedTx *query.AnnotatedTx, accountID string)
 // GetTransactions get all walletDB transactions, and filter transactions by accountID optional
 func (w *Wallet) GetTransactions(accountID string) ([]*query.AnnotatedTx, error) {
        annotatedTxs := []*query.AnnotatedTx{}
-       annotatedAccTxs := []*query.AnnotatedTx{}
 
        txIter := w.DB.IteratorPrefix([]byte(TxPrefix))
        defer txIter.Release()
@@ -510,16 +510,16 @@ func (w *Wallet) GetTransactions(accountID string) ([]*query.AnnotatedTx, error)
                        return nil, err
                }
 
-               annotateTxsAsset(w, []*query.AnnotatedTx{annotatedTx})
-               annotatedTxs = append(annotatedTxs, annotatedTx)
-               if accountID != "" && findTransactionsByAccount(annotatedTx, accountID) {
-                       annotatedAccTxs = append(annotatedAccTxs, annotatedTx)
+               if accountID == "" {
+                       annotatedTxs = append(annotatedTxs, annotatedTx)
+                       continue
                }
-       }
 
-       if accountID != "" {
-               return annotatedAccTxs, nil
+               if findTransactionsByAccount(annotatedTx, accountID) {
+                       annotatedTxs = append(annotatedTxs, annotatedTx)
+               }
        }
+
        return annotatedTxs, nil
 }
 
index 59f1b65..1aba2e8 100644 (file)
@@ -3,8 +3,6 @@ package wallet
 import (
        "encoding/json"
 
-       log "github.com/sirupsen/logrus"
-
        "github.com/bytom/blockchain/query"
        "github.com/bytom/errors"
        "github.com/bytom/protocol/bc/types"
@@ -47,7 +45,6 @@ func (w *Wallet) SaveUnconfirmedTx(tx *types.Tx) error {
        }
 
        w.DB.Set(calcUnconfirmedTxKey(tx.ID.String()), rawTx)
-       log.Debugf("insert unconfirmed tx=%s into db", tx.ID.String())
        return nil
 }
 
@@ -69,7 +66,6 @@ func (w *Wallet) GetUnconfirmedTxByTxID(txID string) (*query.AnnotatedTx, error)
 // GetUnconfirmedTxs get account unconfirmed transactions, filter transactions by accountID when accountID is not empty
 func (w *Wallet) GetUnconfirmedTxs(accountID string) ([]*query.AnnotatedTx, error) {
        annotatedTxs := []*query.AnnotatedTx{}
-       annotatedAccTxs := []*query.AnnotatedTx{}
 
        txIter := w.DB.IteratorPrefix([]byte(unconfirmedTxPrefix))
        defer txIter.Release()
@@ -79,14 +75,15 @@ func (w *Wallet) GetUnconfirmedTxs(accountID string) ([]*query.AnnotatedTx, erro
                        return nil, err
                }
 
-               annotatedTxs = append(annotatedTxs, annotatedTx)
-               if accountID != "" && findTransactionsByAccount(annotatedTx, accountID) {
-                       annotatedAccTxs = append(annotatedAccTxs, annotatedTx)
+               if accountID == "" {
+                       annotatedTxs = append(annotatedTxs, annotatedTx)
+                       continue
                }
-       }
 
-       if accountID != "" {
-               return annotatedAccTxs, nil
+               if findTransactionsByAccount(annotatedTx, accountID) {
+                       annotatedTxs = append(annotatedTxs, annotatedTx)
+               }
        }
+
        return annotatedTxs, nil
 }