# Class BSV::Wallet::Engine::TxProof <a id="class-BSV-Wallet-Engine-TxProof"></a>

**Inherits:** `Object`
**Includes:** `BSV::Wallet::Engine::OmqSupport`

Background proof acquisition handler — logical model for walletd.

Fetches transaction status from ARC. When a tx is mined (has merkle_path +
block_height), saves the proof and links it to the action.

## Public Class Methods
### `pending(store, limit: = 10)` <a id="method-c-pending"></a> <a id="pending-class_method"></a>
Discovery query — returns action IDs needing proofs.

## Public Instance Methods
### `initialize(store:, broadcaster:, hydrator: = nil)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
`hydrator` (optional) is the shared-cache owner notified on a fresh proof via
`proof_arrived` (#296 Phase D). The daemon injects the same Hydrator instance
whose cache <code>Engine::Broadcast</code> reads, so a newly mined ancestor
becomes a terminal for future `wire_ancestor` walks without a store
round-trip. Nil-tolerant: configurations without the shared cache simply skip
enrichment.
- **@return** [TxProof] a new instance of TxProof

### `process(action_id)` <a id="method-i-process"></a> <a id="process-instance_method"></a>
Process a single proof acquisition — fetch status, save proof if mined.

Emits exactly one task.dispatched on entry, then exactly one of task.succeeded
/ task.failed / task.skipped.

### `pull!(task:)` <a id="method-i-pull-21"></a> <a id="pull!-instance_method"></a>
Background queue — Scheduler pushes action IDs here.
