From 0d8cc437fe0bf96d356c87c87a1dd717f78bcc9a Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Wed, 19 Aug 2020 18:36:57 +0300 Subject: [PATCH] mempool: swap checks in Add, fail fast Checking for duplicates is easier than checking the balance, so it should be done first. --- pkg/core/mempool/mem_pool.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/core/mempool/mem_pool.go b/pkg/core/mempool/mem_pool.go index 00fcb464c..b4798d004 100644 --- a/pkg/core/mempool/mem_pool.go +++ b/pkg/core/mempool/mem_pool.go @@ -136,14 +136,14 @@ func (mp *Pool) Add(t *transaction.Transaction, fee Feer) error { timeStamp: time.Now().UTC(), } mp.lock.Lock() - if !mp.checkTxConflicts(t, fee) { - mp.lock.Unlock() - return ErrConflict - } if mp.containsKey(t.Hash()) { mp.lock.Unlock() return ErrDup } + if !mp.checkTxConflicts(t, fee) { + mp.lock.Unlock() + return ErrConflict + } mp.verifiedMap[t.Hash()] = pItem // Insert into sorted array (from max to min, that could also be done