Skip to content

Conversation

@konstantinabl
Copy link
Contributor

@konstantinabl konstantinabl commented Oct 8, 2025

Description

This PR introduces the new transaction pool feature sitting behind the ENABLE_TX_POOL flag.

The details can be found in the doc create for it https://github.com/hiero-ledger/hiero-json-rpc-relay/pull/4454/files#diff-30f3b82da50d90485c8cddfec36b0a03b7d442dbe7062c07f0c517a8143a387f

Related issue(s)

Fixes #3960

Testing Guide

Additional work needed (optional)

N/A

Checklist

  • I've assigned an assignee to this PR and related issue(s) (if applicable)
  • I've assigned a label to this PR and related issue(s) (if applicable)
  • I've assigned a milestone to this PR and related issue(s) (if applicable)
  • I've updated documentation (code comments, README, etc. if applicable)
  • I've done sufficient testing (unit, integration, etc.)

natanasow and others added 10 commits September 30, 2025 13:52
Signed-off-by: nikolay <[email protected]>
Signed-off-by: Simeon Nakov <[email protected]>
Co-authored-by: Simeon Nakov <[email protected]>
Signed-off-by: nikolay <[email protected]>
Signed-off-by: Konstantina Blazhukova <[email protected]>
Co-authored-by: Nikolay Atanasow <[email protected]>
Signed-off-by: Konstantina Blazhukova <[email protected]>
Signed-off-by: Konstantina Blazhukova <[email protected]>
Signed-off-by: nikolay <[email protected]>
Co-authored-by: Konstantina Blazhukova <[email protected]>
Signed-off-by: nikolay <[email protected]>
Signed-off-by: Konstantina Blazhukova <[email protected]>
Co-authored-by: Konstantina Blazhukova <[email protected]>
# Conflicts:
#	packages/relay/src/lib/precheck.ts
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Test Results

 20 files  ± 0  269 suites  +3   21m 58s ⏱️ +44s
778 tests + 9  774 ✅ +12  4 💤 ±0  0 ❌  - 3 
794 runs  +10  790 ✅ +13  4 💤 ±0  0 ❌  - 3 

Results for commit f908c27. ± Comparison against base commit b7c40e7.

This pull request removes 2 and adds 11 tests. Note that renamed tests count towards both.
"after all" hook for "@release should return the code through a websocket" ‑ RPC Server Acceptance Tests Acceptance tests @web-socket-batch-2 eth_getCode "after all" hook for "@release should return the code through a websocket"
test getAsync operation ‑ RPC Server Acceptance Tests Acceptance tests @cache-service Acceptance Tests for shared cache fallback to local cache in case of Redis error test getAsync operation
should fail with WRONG_NONCE when a transaction with very high nonce has been sent ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature should fail with WRONG_NONCE when a transaction with very high nonce has been sent
should fail with WRONG_NONCE when multiple transactions have been sent simultaneously ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = false should fail with WRONG_NONCE when multiple transactions have been sent simultaneously
should have difference between pending and latest nonce when a single transaction has been sent ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = true should have difference between pending and latest nonce when a single transaction has been sent
should have difference between pending and latest nonce when multiple transactions have been sent simultaneously ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = true should have difference between pending and latest nonce when multiple transactions have been sent simultaneously
should have equal nonces (pending and latest) after CN reverted transaction ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = true should have equal nonces (pending and latest) after CN reverted transaction
should have equal nonces (pending and latest) after multiple CN reverted transactions ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = true should have equal nonces (pending and latest) after multiple CN reverted transactions
should have equal nonces (pending and latest) after successfully validated transaction ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = true should have equal nonces (pending and latest) after successfully validated transaction
should have equal nonces (pending and latest) for contract reverted transaction ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = true should have equal nonces (pending and latest) for contract reverted transaction
should return equal nonces (pending and latest) when transaction has been sent ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = false should return equal nonces (pending and latest) when transaction has been sent
should return latest nonce after transaction has been sent  ‑ RPC Server Acceptance Tests Acceptance tests @api-batch-1 RPC Server Acceptance Tests RPC Server Acceptance Tests Transaction related RPC Calls Transaction Pool feature ENABLE_TX_POOL = false should return latest nonce after transaction has been sent 
…

♻️ This comment has been updated with latest results.

@natanasow natanasow changed the title Feat/transaction pool feat: transaction pool Oct 8, 2025
@natanasow natanasow changed the title feat: transaction pool feat: add transaction pool Oct 8, 2025
@natanasow natanasow added the enhancement New feature or request label Oct 8, 2025
@natanasow natanasow added this to the 0.73.0 milestone Oct 8, 2025
@konstantinabl konstantinabl changed the title feat: add transaction pool feat: Adds transaction pool funcitonality Oct 8, 2025
@konstantinabl konstantinabl marked this pull request as ready for review October 8, 2025 14:28
@konstantinabl konstantinabl requested review from a team as code owners October 8, 2025 14:28
Signed-off-by: nikolay <[email protected]>
Copy link
Contributor

@quiet-node quiet-node left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey team great work overall! Since this is a big PR it naturally raises quite many questions on my side. I didn’t get a chance to bring them up during the individual PRs, so I’m leaving all my concerns and feedback here. Well tbh having the full picture actually makes it easier to spot things.

Anywho my feedback can be controversial so I’d love to hear your thoughts on them

Signed-off-by: Konstantina Blazhukova <[email protected]>
Signed-off-by: Konstantina Blazhukova <[email protected]>
natanasow and others added 3 commits October 27, 2025 13:47
Signed-off-by: Konstantina Blazhukova <[email protected]>
@konstantinabl konstantinabl requested a review from a team as a code owner October 27, 2025 12:33
Signed-off-by: Konstantina Blazhukova <[email protected]>
natanasow
natanasow previously approved these changes Oct 28, 2025
simzzz
simzzz previously approved these changes Oct 28, 2025
quiet-node
quiet-node previously approved these changes Oct 28, 2025
Copy link
Contributor

@quiet-node quiet-node left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Great work!

Signed-off-by: Konstantina Blazhukova <[email protected]>
@konstantinabl konstantinabl dismissed stale reviews from quiet-node, simzzz, and natanasow via f908c27 October 28, 2025 15:00
quiet-node
quiet-node previously approved these changes Oct 28, 2025
@quiet-node quiet-node force-pushed the feat/transaction-pool branch 3 times, most recently from aab2f1e to f908c27 Compare October 29, 2025 03:54
@konstantinabl konstantinabl merged commit 4d097c8 into main Oct 29, 2025
111 of 163 checks passed
@konstantinabl konstantinabl deleted the feat/transaction-pool branch October 29, 2025 09:11
@codecov
Copy link

codecov bot commented Oct 29, 2025

Codecov Report

❌ Patch coverage is 89.32584% with 76 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/relay/src/lib/types/transactionPool.ts 0.00% 70 Missing ⚠️
packages/relay/src/lib/clients/cache/redisCache.ts 92.68% 3 Missing ⚠️
...ckages/relay/src/lib/clients/redisClientManager.ts 96.61% 2 Missing ⚠️
...s/relay/src/lib/clients/cache/IRedisCacheClient.ts 0.00% 1 Missing ⚠️
@@            Coverage Diff             @@
##             main    #4454      +/-   ##
==========================================
- Coverage   96.23%   95.52%   -0.72%     
==========================================
  Files         121      127       +6     
  Lines       20001    20447     +446     
  Branches     1755     1760       +5     
==========================================
+ Hits        19247    19531     +284     
- Misses        735      897     +162     
  Partials       19       19              
Flag Coverage Δ
config-service 98.81% <100.00%> (+0.01%) ⬆️
relay 90.92% <86.91%> (-0.25%) ⬇️
server 88.85% <ø> (ø)
ws-server 98.04% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...ckages/config-service/src/services/globalConfig.ts 100.00% <100.00%> (ø)
packages/relay/src/lib/clients/sdkClient.ts 95.82% <100.00%> (+0.03%) ⬆️
packages/relay/src/lib/debug.ts 99.37% <100.00%> (-0.01%) ⬇️
packages/relay/src/lib/eth.ts 99.57% <100.00%> (+<0.01%) ⬆️
packages/relay/src/lib/precheck.ts 98.68% <100.00%> (+<0.01%) ⬆️
packages/relay/src/lib/relay.ts 98.61% <100.00%> (+0.78%) ⬆️
...elay/src/lib/services/cacheService/cacheService.ts 97.49% <100.00%> (+0.47%) ⬆️
...rvices/ethService/accountService/AccountService.ts 96.53% <100.00%> (-0.02%) ⬇️
...thService/transactionService/TransactionService.ts 98.86% <100.00%> (+1.62%) ⬆️
packages/relay/src/lib/services/index.ts 100.00% <100.00%> (ø)
... and 8 more

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[EXPERIMENTAL ISSUE] Transaction Pool

6 participants