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

tari-project / tari / 35322960161
73%

Build:
DEFAULT BRANCH: development
Ran 18 Sep 2026 09:09AM UTC
Jobs 1
Files 779
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 Sep 2026 08:09AM UTC coverage: 62.878% (+0.7%) from 62.186%
35322960161

push

github

web-flow
fix(wallet): return generic Outputs (not SpentOutputs) from GetOutputsByQuery (#8028)

Replaces #8009, which GitHub will not let me reopen after an accidental
force-push corrupted its branch history (see incident note below). Same
underlying fix, now addressing SWvheerden's review feedback on the
original PR.

## Bug

`OutputManagerRequest::GetOutputsByQuery` was wrapping its result in
`OutputManagerResponse::SpentOutputs(outputs)` instead of the correct
variant, which broke the entire multisig-withdrawal path
(`GetMultisigUtxoData`, `PrepareWithdrawMultisigTransaction`,
`SendMultisigUtxo` all call `get_outputs_by_query` internally). Verified
live against a real Esmeralda testnet wallet before the original fix
landed.

## Review feedback addressed (from #8009, @SWvheerden)

The original PR fixed this by wrapping the result in `UnspentOutputs`.
SWvheerden correctly pointed out that's still wrong: `GetOutputsByQuery`
can return outputs of *any* status depending on the query filter, not
just unspent, so a status-specific variant is semantically incorrect.
This PR instead uses the existing generic
`OutputManagerResponse::Outputs(Vec<DbWalletOutput>)` variant (already
used elsewhere for `GetManyOutputs`/`GetOutputsByCommitments`), updating
both the `service.rs` handler and the matching arm in
`handle.rs::get_outputs_by_query` (its only caller).

Caller safety verified independently: all three multisig
transaction-service handlers already push an explicit `query.status`
filter (e.g. `OutputStatus::Unspent`) before calling
`get_outputs_by_query`, and that filtering happens server-side in the
SQL layer (`OutputSql::fetch_outputs_by_query`), not by inspecting the
response enum tag. None of the three callers pattern-match on the
response variant at all. So this change is a pure
wire-format/type-correctness fix with zero behavioral impact on existing
callers.

## Test

Adds negative-path regression coverage that the original PR was missing
(per SWvheerden's "you... (continued)

0 of 5 new or added lines in 3 files covered. (0.0%)

65 existing lines in 12 files now uncovered.

86482 of 137540 relevant lines covered (62.88%)

193156.52 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
0.0
0.0% base_layer/wallet/src/transaction_service/service.rs
1
0.0
0.0% base_layer/wallet/src/output_manager_service/handle.rs
1
2.34
0.0% base_layer/wallet/src/output_manager_service/service.rs

Coverage Regressions

Lines Coverage ∆ File
22
55.15
5.3% base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs
21
72.22
-1.36% comms/core/src/connectivity/manager.rs
6
57.77
6.01% base_layer/core/src/chain_storage/blockchain_database.rs
3
81.87
-0.61% base_layer/transaction_components/src/validation/aggregate_body/aggregate_body_internal_validator.rs
3
67.57
-8.11% comms/core/src/peer_manager/error.rs
3
87.98
-0.38% comms/dht/src/actor.rs
2
78.13
-3.13% comms/core/src/pipeline/outbound.rs
1
46.97
21.21% base_layer/core/src/chain_storage/block_add_result.rs
1
25.29
-1.15% base_layer/core/src/chain_storage/error.rs
1
79.45
-1.37% base_layer/node_components/src/blocks/chain_block.rs
1
82.14
-0.2% comms/core/src/noise/socket.rs
1
83.33
-0.93% comms/core/src/protocol/messaging/inbound.rs
Jobs
ID Job ID Ran Files Coverage
1 35322960161.1 18 Sep 2026 09:09AM UTC 779
62.88
GitHub Action Run
Source Files on build 35322960161
  • Tree
  • List 779
  • Changed 40
  • Source Changed 3
  • Coverage Changed 37
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35322960161
  • 5e3d1d7c on github
  • Prev Build on development (#35192540237)
  • Next Build on development (#35687808002)
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