Skip to content

Commit

Permalink
[model] Fix GetNewTransactions and GetNewTransactions method for don'…
Browse files Browse the repository at this point in the history
…t return duplicated transacions
  • Loading branch information
mauricio1802 committed Jan 29, 2020
1 parent 2fa4777 commit 4f90d5d
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions src/models/history/historyManager.go
Original file line number Diff line number Diff line change
Expand Up @@ -228,13 +228,17 @@ func (hm *HistoryManager) getNewTransactions() []*transactions.TransactionDetail
hm.mutexForNew.Lock()
defer hm.mutexForNew.Unlock()
txnsForReturn := make([]*transactions.TransactionDetails, 0)
added := make(map[string]struct{}, 0)
for addr, _ := range hm.newTxn {
for _, txn := range hm.newTxn[addr] {
txnDetail, err := TransactionDetailsFromCoreTxn(txn, hm.addresses)
if err != nil {
logHistoryManager.WithError(err).Warn("Couldn't convert transaction")
if _, exist := added[txn.GetId()]; !exist {
txnDetail, err := TransactionDetailsFromCoreTxn(txn, hm.addresses)
if err != nil {
logHistoryManager.WithError(err).Warn("Couldn't convert transaction")
}
added[txn.GetId()] = struct{}{}
txnsForReturn = append(txnsForReturn, txnDetail)
}
txnsForReturn = append(txnsForReturn, txnDetail)
hm.mutexForAll.Lock()
_, exist := hm.txnForAddresses[addr]
if exist {
Expand All @@ -253,13 +257,18 @@ func (hm *HistoryManager) getNewTransactionsWithFilters() []*transactions.Transa
hm.mutexForNew.Lock()
defer hm.mutexForNew.Unlock()
txnsForReturn := make([]*transactions.TransactionDetails, 0)
added := make(map[string]struct{}, 0)
for _, addr := range hm.filters {
for _, txn := range hm.newTxn[addr] {
txnDetail, err := TransactionDetailsFromCoreTxn(txn, hm.addresses)
if err != nil {
logHistoryManager.WithError(err).Warn("Couldn't convert transaction")
if _, exist := added[txn.GetId()]; !exist {
txnDetail, err := TransactionDetailsFromCoreTxn(txn, hm.addresses)
if err != nil {
logHistoryManager.WithError(err).Warn("Couldn't convert transaction")
}
txnsForReturn = append(txnsForReturn, txnDetail)
added[txn.GetId()] = struct{}{}
}
txnsForReturn = append(txnsForReturn, txnDetail)

hm.mutexForAll.Lock()
_, exist := hm.txnForAddresses[addr]
if exist {
Expand Down

0 comments on commit 4f90d5d

Please sign in to comment.