message: Fixed duplicate transaction check in the mempool
diff: @@ -6282,8 +6282,7 @@ bool static ProcessMessage(CNode *pfrom, string strCommand, CDataStream &vRecv,
  pfrom->setAskFor.erase(inv.hash);
  mapAlreadyAskedFor.erase(inv.hash);
  - //&& !AlreadyHave(inv)
  - if (!tx.IsZerocoinSpend() && AcceptToMemoryPool(mempool, state, tx, true, true, &fMissingInputs, false, 0, true)) {
  + if (!AlreadyHave(inv) && !tx.IsZerocoinSpend() && AcceptToMemoryPool(mempool, state, tx, true, true, &fMissingInputs, false, 0, true)) {
  // mempool.check(pcoinsTip);
  RelayTransaction(tx);
  for (unsigned int i = 0; i < tx.vout.size(); i++) {
  @@ -6353,8 +6352,7 @@ bool static ProcessMessage(CNode *pfrom, string strCommand, CDataStream &vRecv,
  BOOST_FOREACH(uint256 hash, vEraseQueue)
  EraseOrphanTx(hash);
  //btzc: zcoin condition
  - //&& !AlreadyHave(inv)
  - } else if (tx.IsZerocoinSpend() && AcceptToMemoryPool(mempool, state, tx, false, true, &fMissingInputsZerocoin, false, 0, true)) {
  + } else if (!AlreadyHave(inv) && tx.IsZerocoinSpend() && AcceptToMemoryPool(mempool, state, tx, false, true, &fMissingInputsZerocoin, false, 0, true)) {
  RelayTransaction(tx);
  // LogPrint("mempool", "AcceptToMemoryPool: peer=%d: accepted %s (poolsz %u txn, %u kB)\n",
  // pfrom->id,
  