From 27893311326b419cec2ee44983955ef62b29aa8f Mon Sep 17 00:00:00 2001 From: Dmitry Tyshchenko Date: Mon, 17 May 2021 13:45:07 +0300 Subject: [PATCH] fix(core-transaction-pool): keep previously forged transaction (#4390) --- __tests__/unit/core-transaction-pool/service.test.ts | 2 +- packages/core-transaction-pool/src/service.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/__tests__/unit/core-transaction-pool/service.test.ts b/__tests__/unit/core-transaction-pool/service.test.ts index 148b68979d..3e3fc1e0fb 100644 --- a/__tests__/unit/core-transaction-pool/service.test.ts +++ b/__tests__/unit/core-transaction-pool/service.test.ts @@ -1,7 +1,7 @@ import { Container, Contracts, Enums } from "@arkecosystem/core-kernel"; import { Identities, Managers, Transactions } from "@arkecosystem/crypto"; -import { Service } from "@packages/core-transaction-pool/src/service"; +import { Service } from "../../../packages/core-transaction-pool/src/service"; const configuration = { getRequired: jest.fn(), diff --git a/packages/core-transaction-pool/src/service.ts b/packages/core-transaction-pool/src/service.ts index 478fed3f45..e801b4e21c 100644 --- a/packages/core-transaction-pool/src/service.ts +++ b/packages/core-transaction-pool/src/service.ts @@ -154,6 +154,10 @@ export class Service implements Contracts.TransactionPool.Service { const expiredHeight: number = lastHeight - maxTransactionAge; for (const { height, id, serialized } of this.storage.getAllTransactions()) { + if (previouslyForgedTransactions.find((t) => t.id === id)) { + continue; + } + if (height > expiredHeight) { try { const previouslyStoredTransaction = Transactions.TransactionFactory.fromBytes(serialized);