Freeze one snapshotted market's oracle state for this flush and stamp the
market, capturing its cash rows and activating its payout-tree snapshot at this
instant.
Holding SnapshotStage is what admits this call, and that potato cannot leave
the transaction start_pool_valuation minted it in — so every Pricer here is
loaded at one instant, which is what lets the valuation stage span transactions
without mixing marks (audit L10). This stage reads oracles only — it never walks
a payout tree — so all markets fit one PTB regardless of book size.
The oracle feeding this stage must have been written in an EARLIER transaction:
pricing::resolve_live_pricer refuses a read stamped with the current
transaction digest (RP-24), so a keeper cannot refresh and snapshot in one PTB.
A market already settled at snapshot time is recorded with no pricer, gets no
stamp (settled flows never touch live NAV), and contributes 0. An
expired-but-unsettled market aborts: it has no well-defined mark, and because
this stage is atomic the abort reverts the whole snapshot transaction, so the
flag is never left engaged. Settle it first, then start the flush; settlement is
never blocked by a flush, so that ordering is always available.
Freeze one snapshotted market's oracle state for this flush and stamp the market, capturing its cash rows and activating its payout-tree snapshot at this instant.
Holding
SnapshotStageis what admits this call, and that potato cannot leave the transactionstart_pool_valuationminted it in — so everyPricerhere is loaded at one instant, which is what lets the valuation stage span transactions without mixing marks (audit L10). This stage reads oracles only — it never walks a payout tree — so all markets fit one PTB regardless of book size.The oracle feeding this stage must have been written in an EARLIER transaction:
pricing::resolve_live_pricerrefuses a read stamped with the current transaction digest (RP-24), so a keeper cannot refresh and snapshot in one PTB.A market already settled at snapshot time is recorded with no pricer, gets no stamp (settled flows never touch live NAV), and contributes 0. An expired-but-unsettled market aborts: it has no well-defined mark, and because this stage is atomic the abort reverts the whole snapshot transaction, so the flag is never left engaged. Settle it first, then start the flush; settlement is never blocked by a flush, so that ordering is always available.