Skip to content

A merged comment says the ChiaQuery facade has no absence-aware read — it does; sweep what rests on that #399

Description

@MichaelTaylor3d

A comment merged on main carries a false premise, and two decisions were made on it

crates/dig-wallet/src/sage/fallback.rs justifies conflating absence with outage by asserting that
only the inner coinset client exposes an absence-aware read, and that lifting it onto the ChiaQuery
facade would need a chia-query release.

That is false. Verified against the published chia-query 0.19.0 source:

  • ChiaQuery::get_coin_spend_optrouter.rs:480, re-exported at lib.rs:347
  • it wraps coinset.get_puzzle_and_solution_opt and adds corroboration on top

How the wrong conclusion was reached, because the shape generalises

Round 7 of PR #393 searched the facade for get_puzzle_and_solution_opt, correctly found it absent,
and concluded the capability was absent. A different method provides it. A gate then verified round
7's claim as stated — true of that method name — and upheld it.

Checking an enumerated name is not the same as asking whether the capability exists. Both the lane
and its gate were individually correct and jointly wrong, and the belief then got written into a
comment on main where the next reader inherits it as settled.

It also weakens the security objection that upheld the decision

The gate that upheld round 7's refusal added that router.rs:739 resolves peer-first, so a terminal
refusal on a missing parent would hand any NC-12 peer a money-erasure primitive. But
get_coin_spend_opt's own contract says:

  • Ok(None) means corroborated absence
  • an absence only one source will vouch for is UncorroboratedAbsence — an Err
  • two sources that contradict each other are SourcesDisagree — also an Err
  • CORROBORATION_FLOOR = 2 sources besides the answering one

One hostile peer cannot mint an absence. The objection was sound given the premise it was handed;
the premise was wrong.

What is NOT being claimed

The actionable part

Sweep for other decisions resting on the same belief. The comment is merged, so anything written
after it may have inherited it. Grep for reasoning of the shape "the facade cannot distinguish absence
from failure"
/ "only the inner client exposes" and check each against 0.19.0's actual surface.

The comment itself is corrected in PR #391; this ticket is for the blast radius of the belief, not the
sentence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions