• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iotaledger / iota / 27800682022
67%

Build:
DEFAULT BRANCH: develop
Ran 19 Jun 2026 02:52AM UTC
Jobs 1
Files 1107
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Jun 2026 04:14PM UTC coverage: 67.383% (-0.01%) from 67.397%
27800682022

push

github

web-flow
fix(iota-indexer): scope the watermark and the cursor pruning check to only the tables provided filter reads (#11967)

# Description of change

This PR fixes a bug in the iota-indexer where filtered queries were
incorrectly dropping valid rows and failing to trigger the KV-store
fallback because they calculate the `min_available_tx` watermark using a
global set of tables, causing the filter to be unnecessarily restricted
by the most heavily pruned table.

## Links to any relevant issues

fixes #11963

## How the change has been tested

- [x] Basic tests (linting, compilation, formatting, unit/integration
tests)
- [ ] Patch-specific tests (correctness, functionality coverage)

Ran the `iota-indexer` JSON-RPC locally against mainnet, with both the
Postgres database and the KV fallback store pointed at mainnet.
- Re-ran the `queryTransactionBlocks` request FromAddress filter on the
address previously failed to paginate.
- Confirmed:
- `min_available_tx` is now scoped to `tx_senders`, which is unpruned,
so it resolves to `0`. The emitted SQL no longer carries the inflated
lower bound; it reads `tx_sequence_number >= 0`.
- Pagination walks the full history correctly across pages (descending
cursor advancing `< 321263599`, then `< 3618188`, down to the final
page), with no rows silently dropped.
- Transaction content for pruned ranges is served from the fallback
store via
`multi_get_transaction_block_response_by_sequence_numbers_with_fallback`.
- The final page returns 13 rows (fewer than the limit of 51), correctly
terminating pagination.

### Infrastructure QA (only required for crates that are maintained by
@iotaledger/infrastructure)

> [!NOTE]
> This patch does not affect the normal ingestion operation of the
iota-indexer, thus no further tests were conducted.

### Release Notes

- [x] Indexer: Fixed resolution of the pruning threshold in the JSON-RPC
filtered queries.

---------

Co-authored-by: Konstantinos Demartinos <konstantinos.demartinos@iota.org>

0 of 34 new or added lines in 1 file covered. (0.0%)

3454 existing lines in 126 files now uncovered.

157976 of 234444 relevant lines covered (67.38%)

468683.34 hits per line

Uncovered Changes

Lines Coverage ∆ File
34
0.0
0.0% crates/iota-indexer/src/read.rs

Coverage Regressions

Lines Coverage ∆ File
324
41.23
0.0% crates/iota-package-resolver/src/lib.rs
174
0.0
0.0% crates/iota-graphql-rpc/src/types/move_package.rs
172
0.0
0.0% crates/iota-open-rpc/src/examples.rs
151
82.16
-0.14% crates/iota-core/src/authority.rs
111
80.26
0.12% crates/iota-types/src/crypto.rs
106
0.0
0.0% crates/iota-core/src/generate_format.rs
106
16.57
0.1% crates/iota-indexer/src/apis/governance_api.rs
97
57.76
1.68% crates/iota-json-rpc-types/src/iota_object.rs
94
80.12
-0.01% crates/iota-core/src/jsonrpc_index.rs
87
57.14
0.0% crates/iota-localnet/src/commands.rs
84
0.0
0.0% crates/iota-graphql-rpc/src/types/transaction_block/mod.rs
77
88.62
0.0% crates/iota-genesis-builder/src/lib.rs
77
78.86
0.4% crates/iota-keys/src/keystore.rs
73
70.84
0.0% crates/iota-json/src/lib.rs
67
13.11
0.0% crates/iota-rpc-loadgen/src/payload/rpc_command_processor.rs
63
0.0
0.0% crates/iota-tool/src/db_tool/index_search.rs
60
19.16
0.0% crates/iota/src/iota_commands.rs
52
64.73
0.0% crates/simulacrum/src/store/in_mem_store.rs
50
92.43
-0.01% crates/iota-faucet/src/faucet/simple_faucet.rs
50
0.0
0.0% crates/iota-indexer/src/apis/indexer_api.rs
46
73.82
0.0% crates/iota-types/src/error.rs
44
0.0
0.0% crates/iota-rest-kv/src/bigtable.rs
41
0.0
0.0% crates/iota-ledger/src/lib.rs
41
0.0
0.0% crates/simulacrum-server/src/main.rs
40
79.13
-0.07% crates/iota-types/src/object.rs
37
60.96
0.0% crates/simulacrum/src/lib.rs
34
88.58
-0.73% crates/iota-types/src/move_authenticator.rs
33
0.0
0.0% crates/iota-graphql-rpc/src/types/validator.rs
33
83.28
0.0% crates/iota-json-rpc-types/src/iota_system_state_summary.rs
32
84.1
0.0% crates/iota-grpc-server/src/transaction_filter.rs
32
54.61
2.73% crates/iota-sdk/src/apis/read.rs
31
68.93
0.0% crates/iota-json-rpc/src/indexer_api.rs
31
52.94
0.0% crates/iota-kvstore/src/bigtable/client.rs
30
83.15
0.0% crates/iota-move-build/src/lib.rs
29
73.87
-1.47% crates/test-cluster/src/lib.rs
28
86.38
0.0% crates/iota-types/src/test_checkpoint_data_builder.rs
27
82.08
0.0% crates/iota-json-rpc-types/src/iota_move.rs
26
76.85
0.0% crates/iota-genesis-builder/src/stake.rs
26
88.76
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/util.rs
22
92.3
0.0% crates/iota-json-rpc/src/governance_api.rs
21
91.64
0.0% crates/iota-genesis-builder/src/stardust/process_outputs.rs
21
0.0
0.0% crates/iota-indexer/src/models/system_state.rs
21
86.3
-0.83% crates/iota-transaction-builder/src/lib.rs
21
90.12
0.99% crates/iota-types/src/base_types.rs
20
81.17
0.0% crates/iota-swarm-config/src/network_config_builder.rs
19
84.33
0.36% crates/iota-core/src/post_consensus_validation.rs
19
0.0
0.0% crates/iota-rpc-loadgen/src/payload/mod.rs
19
93.55
0.0% iota-execution/latest/iota-adapter/src/programmable_transactions/execution.rs
18
53.85
0.0% crates/iota-cluster-test/src/faucet.rs
18
82.5
0.0% crates/iota-config/src/genesis.rs
18
0.0
0.0% crates/iota-indexer/src/apis/coin_api.rs
17
97.44
0.0% crates/iota-json-rpc/src/coin_api.rs
17
59.97
-0.5% crates/iota-json-rpc-types/src/iota_transaction.rs
16
88.12
0.57% crates/iota-test-transaction-builder/src/lib.rs
15
89.29
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/foundry.rs
15
66.67
0.0% crates/iota-indexer/src/config.rs
15
68.75
0.0% crates/iota-sdk/src/apis/coin_read.rs
14
80.42
1.05% crates/iota-sdk/src/lib.rs
13
86.3
0.0% crates/iota-types/src/effects/v1.rs
12
0.0
0.0% crates/iota-graphql-rpc/src/types/system_state_summary.rs
12
0.0
0.0% crates/iota-names/src/lib.rs
12
82.76
0.0% crates/iota-source-validation/src/lib.rs
12
95.72
0.0% crates/iota-types/src/iota_system_state/iota_system_state_inner_v1.rs
11
95.95
-0.03% crates/iota-core/src/authority/authority_test_utils.rs
11
87.37
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/alias.rs
11
77.24
0.0% crates/iota-keys/src/key_derive.rs
11
0.0
0.0% crates/iota-ledger-signer/src/lib.rs
11
87.91
-7.69% iota-execution/latest/iota-move-natives/src/transaction_context.rs
10
67.72
-0.81% crates/iota-core/src/authority/authority_store.rs
10
74.8
0.0% crates/iota-graphql-rpc/src/types/iota_address.rs
10
94.74
-0.09% crates/iota-types/src/programmable_transaction_builder.rs
10
0.0
0.0% crates/simulacrum-server/src/faucet.rs
9
0.0
0.0% crates/iota-indexer/src/store/package_resolver.rs
9
92.35
0.0% crates/iota-types/src/iota_system_state/epoch_start_iota_system_state.rs
9
89.93
-0.2% iota-execution/latest/iota-verifier/src/private_generics.rs
8
75.26
2.06% crates/iota-core/src/test_utils.rs
8
0.0
0.0% crates/iota-ledger/src/api/get_public_key.rs
8
0.0
0.0% crates/iota-light-client/src/package_store.rs
7
77.78
-5.56% crates/iota-config/src/transaction_deny_config.rs
7
91.24
-0.39% crates/iota-core/src/execution_cache/writeback_cache.rs
7
83.43
0.0% crates/iota-grpc-server/src/event_filter.rs
7
66.35
0.63% crates/iota-grpc-server/src/state_service/get_coin_info.rs
7
71.79
0.0% crates/iota-json-rpc-types/src/iota_owner.rs
7
93.58
-0.48% crates/starfish/core/src/transactions_synchronizer.rs
7
93.42
0.0% iota-execution/latest/iota-move-natives/src/dynamic_field.rs
6
78.37
-0.83% crates/iota-core/src/traffic_controller/mod.rs
6
44.25
-5.31% crates/iota-genesis-builder/src/stardust/types/snapshot.rs
6
50.0
7.14% crates/iota-types/src/collection_types.rs
6
40.36
2.63% crates/iota-types/src/signature.rs
6
93.1
0.0% iota-execution/latest/iota-move-natives/src/transfer.rs
5
88.46
-4.04% crates/iota-genesis-builder/src/stardust/types/address_swap_split_map.rs
5
80.52
0.0% crates/iota-grpc-server/src/state_service/list_owned_objects.rs
5
41.67
0.0% crates/iota-names/src/registry.rs
5
96.3
4.44% crates/iota-package-management/src/lib.rs
5
64.21
-1.05% crates/iota-types/src/storage/shared_in_memory_store.rs
4
88.89
0.0% crates/iota-cluster-test/src/test_case/native_transfer_test.rs
4
91.06
-0.08% crates/iota-core/src/authority/authority_per_epoch_store.rs
4
85.29
-0.98% crates/iota-core/src/storage.rs
4
33.1
0.0% crates/iota-indexer/src/models/objects.rs
4
93.5
6.5% crates/iota-transaction-builder/src/package.rs
4
0.0
-80.0% crates/iota-types/src/messages_safe_client.rs
4
98.75
0.0% crates/transaction-fuzzer/src/programmable_transaction_gen.rs
4
94.24
0.0% iota-execution/latest/iota-verifier/src/one_time_witness_verifier.rs
3
87.1
-1.21% crates/iota-core/src/authority_server/mod.rs
3
77.33
-0.21% crates/iota-core/src/checkpoints/mod.rs
3
82.14
-2.68% crates/iota-genesis-builder/src/validator_info.rs
3
0.0
0.0% crates/iota-json-rpc-types/src/iota_indexer.rs
3
98.31
0.0% crates/iota-single-node-benchmark/src/single_node.rs
3
66.67
-33.33% crates/iota-types/src/clock.rs
3
90.91
0.0% crates/iota-types/src/stardust/output/alias.rs
3
88.89
0.0% crates/iota-types/src/stardust/output/basic.rs
3
90.48
0.0% crates/iota-types/src/stardust/output/nft.rs
3
84.21
-3.16% crates/starfish/config/src/crypto.rs
2
92.67
-0.24% crates/iota-core/src/consensus_adapter.rs
2
98.5
0.0% crates/iota-genesis-builder/src/stardust/types/address_swap_map.rs
2
87.34
0.0% crates/iota-grpc-server/src/validation.rs
2
97.37
0.0% crates/iota-move/src/unit_test.rs
2
54.55
0.0% crates/iota-types/src/timelock/stardust_upgrade_label.rs
2
96.49
-3.51% crates/starfish/core/src/commit_consumer.rs
1
99.47
0.0% crates/iota-json-rpc/src/transaction_execution_api.rs
1
64.35
0.0% crates/iota-light-client/src/verifier.rs
1
93.43
-0.04% crates/starfish/core/src/authority_service.rs
1
88.85
-0.11% crates/starfish/core/src/commit_syncer/fast.rs
1
76.81
-0.16% crates/starfish/core/src/commit_syncer/mod.rs
1
93.06
-0.18% crates/starfish/core/src/storage/rocksdb_store.rs
1
99.0
0.0% crates/transaction-fuzzer/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 27800682022.1 19 Jun 2026 02:52AM UTC 1107
67.38
GitHub Action Run
Source Files on build 27800682022
  • Tree
  • List 1107
  • Changed 251
  • Source Changed 219
  • Coverage Changed 155
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27800682022
  • 1ff26baf on github
  • Prev Build on develop (#27731470792)
  • Next Build on develop (#27856413163)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc