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

iotaledger / iota / 29062660040
69%

Build:
DEFAULT BRANCH: develop
Ran 10 Jul 2026 02:28AM UTC
Jobs 1
Files 1111
Run time 3min
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

09 Jul 2026 02:17PM UTC coverage: 68.096% (-0.003%) from 68.099%
29062660040

push

github

web-flow
feat(grpc): add `balance_changes` and `object_changes` to `ExecutedTransaction` (#12183)

# Description of change

Adds server-side support for `balance_changes` and `object_changes` on
the gRPC API, the equivalent of the JSON-RPC `showBalanceChanges` /
`showObjectChanges` response options. Both fields are strictly opt-in —
populated only when the request's read mask names them — and are not
part of any default read mask.

Companion PR adding the proto types: iotaledger/iota-rust-sdk#1255. This
PR bumps the `iota-rust-sdk` rev to pick up those types; the rev should
be re-pointed to the merge commit once
https://github.com/iotaledger/iota-rust-sdk/pull/1255 lands.

## What & how

- New synchronous derivation module
`crates/iota-grpc-server/src/changes.rs`. It computes both change sets
from data the server already holds in memory — the transaction effects
plus its input/output objects — so **no new lookup tables or indexes**
are introduced. Semantics mirror
`crates/iota-json-rpc/src/balance_changes.rs` and `object_changes.rs`,
including the gas-only balance change for failed transactions and the
mocked-gas-coin exclusion for simulations.
- Wired through all four `ExecutedTransaction` producers:
`get_transactions`, `execute_transactions`, `simulate_transactions`, and
the checkpoint endpoints (`get_checkpoint` / `stream_checkpoints`, as
`transactions.balance_changes` / `transactions.object_changes`).
- The derived fields force the fetch of effects and input/output objects
(and the transaction, for the sender) even when those aren't themselves
in the mask; over-fetched data never leaks into the response, as the
`Merge` impls only populate mask-requested fields.

## Completeness contract on pruned objects

Requesting `input_objects` / `output_objects` / `balance_changes` /
`object_changes` for a transaction whose objects the node no longer has
(e.g. pruned) now returns a per-item `FAILED_PRECONDITION` naming the
unavailable object, instead of a silently sho... (continued)

567 of 636 new or added lines in 6 files covered. (89.15%)

464 existing lines in 36 files now uncovered.

161656 of 237396 relevant lines covered (68.1%)

456174.28 hits per line

Uncovered Changes

Lines Coverage ∆ File
61
88.09
crates/iota-grpc-server/src/changes.rs
6
89.8
-0.36% crates/iota-grpc-server/src/types.rs
2
92.73
0.98% crates/iota-grpc-server/src/transaction_execution_service/transaction.rs

Coverage Regressions

Lines Coverage ∆ File
160
44.34
-8.96% crates/iota-replay/src/replay.rs
100
90.66
-0.09% crates/iota-protocol-config/src/lib.rs
53
80.29
2.57% crates/starfish/core/src/commit_syncer/mod.rs
24
87.59
-3.78% crates/iota-test-transaction-builder/src/lib.rs
12
95.37
-0.35% crates/iota-types/src/iota_system_state/iota_system_state_inner_v1.rs
8
48.12
-1.37% crates/iota-sdk/src/apis/read.rs
8
62.0
-2.67% crates/iota-types/src/storage/mod.rs
7
77.19
0.88% crates/test-cluster/src/lib.rs
6
73.53
-17.65% crates/iota-genesis-builder/src/stardust/types/output_header.rs
6
91.85
-4.44% crates/iota-package-management/src/lib.rs
6
45.13
-1.95% crates/iota-replay/src/data_fetcher.rs
6
78.32
-2.1% crates/iota-sdk/src/lib.rs
6
74.57
-2.59% crates/iota-types/src/iota_system_state/mod.rs
6
64.97
-1.27% crates/iota-types/src/storage/shared_in_memory_store.rs
5
45.54
0.99% crates/iota-json-rpc-types/src/object_changes.rs
4
83.33
4.17% crates/iota-config/src/transaction_deny_config.rs
4
90.96
-0.16% crates/iota-core/src/authority/authority_per_epoch_store.rs
4
92.13
-1.31% crates/iota-core/src/authority/test_authority_builder.rs
4
60.92
-1.68% crates/iota-stardust-types/src/block/output/alias.rs
4
56.52
-2.17% crates/iota-stardust-types/src/block/output/foundry.rs
3
77.3
-0.2% crates/iota-core/src/checkpoints/mod.rs
3
77.05
-4.92% crates/iota-core/src/traffic_controller/nodefw_test_server.rs
3
46.9
0.0% crates/iota-genesis-builder/src/stardust/types/snapshot.rs
3
20.9
-1.69% crates/iota-stardust-types/src/block/output/mod.rs
3
72.2
-0.62% crates/iota-swarm/src/memory/swarm.rs
3
83.12
0.05% crates/iota-types/src/transaction.rs
2
89.35
0.0% crates/iota-core/src/connection_monitor.rs
2
96.3
-0.32% crates/iota-core/src/overload_monitor.rs
2
84.17
-0.48% crates/iota-core/src/storage.rs
1
86.11
0.0% crates/iota-cluster-test/src/test_case/native_transfer_test.rs
1
72.25
0.0% crates/iota-core/src/authority_server/validator.rs
1
89.03
0.0% crates/iota-network/src/discovery/mod.rs
1
16.04
-0.34% crates/iota-replay/src/lib.rs
1
89.62
-0.11% crates/starfish/core/src/commit_syncer/fast.rs
1
98.07
-0.1% crates/starfish/core/src/cordial_knowledge.rs
1
96.33
-0.03% crates/starfish/core/src/dag_state.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 29062660040.1 10 Jul 2026 02:28AM UTC 1111
68.1
GitHub Action Run
Source Files on build 29062660040
  • Tree
  • List 1111
  • Changed 64
  • Source Changed 10
  • Coverage Changed 64
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29062660040
  • 518510e5 on github
  • Prev Build on develop (#28987808076)
  • Next Build on develop (#29134827759)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc