The extension traits are primarily intended to satisfy [`SyncRequest`]s with [`sync`] and
[`FullScanRequest`]s with [`full_scan`].
+## Trust assumptions
+
+The Esplora server is trusted: it can hide transactions or misreport confirmations.
+
+Esplora also reports each input's previous output (value and script). `sync` and `full_scan`
+insert these into `TxUpdate::txouts` as floating txouts without fetching the parent
+transactions to verify them.
+
+If a parent transaction is not in your `TxGraph`, fee and sent/received calculations
+rely on these unverified values. This includes inputs owned by other parties, such as
+in payjoin or coinjoin transactions. Use a trusted Esplora server, or fetch and verify
+the parent transactions before relying on these figures.
+
## Usage
For blocking-only:
/// `stop_gap` script pubkeys with no associated transactions. `parallel_requests` specifies
/// the maximum number of HTTP requests to make in parallel.
///
+ /// Previous outputs in `tx_update.txouts` are server-reported and unverified; see
+ /// [trust assumptions](crate#trust-assumptions).
+ ///
/// Refer to [crate-level docs](crate) for more.
async fn full_scan<K: Ord + Clone + Send, R: Into<FullScanRequest<K>> + Send>(
&self,
/// [`SyncRequest`]). `parallel_requests` specifies the maximum number of HTTP requests to make
/// in parallel.
///
+ /// Previous outputs in `tx_update.txouts` are server-reported and unverified; see
+ /// [trust assumptions](crate#trust-assumptions).
+ ///
/// Refer to [crate-level docs](crate) for more.
async fn sync<I: Send, R: Into<SyncRequest<I>> + Send>(
&self,
/// `stop_gap` script pubkeys with no associated transactions. `parallel_requests` specifies
/// the maximum number of HTTP requests to make in parallel.
///
+ /// Previous outputs in `tx_update.txouts` are server-reported and unverified; see
+ /// [trust assumptions](crate#trust-assumptions).
+ ///
/// Refer to [crate-level docs](crate) for more.
fn full_scan<K: Ord + Clone, R: Into<FullScanRequest<K>>>(
&self,
/// [`SyncRequest`]). `parallel_requests` specifies the maximum number of HTTP requests to make
/// in parallel.
///
+ /// Previous outputs in `tx_update.txouts` are server-reported and unverified; see
+ /// [trust assumptions](crate#trust-assumptions).
+ ///
/// Refer to [crate-level docs](crate) for more.
fn sync<I: 'static, R: Into<SyncRequest<I>>>(
&self,