1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! What a cold-start round produced.
//!
//! [`ColdStartResults`] carries a per-slot [`SlotOutcome`] for every declared
//! verify and probe slot — distinguishing a genuine on-chain zero from a fetch
//! failure — plus the injected [`SlotChange`]s and any discovered access lists.
use crateStorageAccessList;
use crateCodeVerifyReport;
use crateColdStartError;
use crateRootProbeOutcome;
use crate;
use ExecutionResult;
/// The outcome of executing one [`ColdStartPlan`](crate::cold_start::ColdStartPlan)
/// round.
///
/// `fetched` and `probed` each carry exactly one [`SlotOutcome`] per declared
/// verify / probe slot, so a fetch failure surfaces as
/// [`SlotFetch::FetchFailed`](crate::freshness::SlotFetch::FetchFailed) rather
/// than as absence. `verified` carries only the slots whose value actually changed
/// (and were injected). `discovered` carries one [`ColdStartCallResult`] per
/// discover call.
///
/// The order of entries in `fetched` / `probed` is unspecified — look up a slot
/// by `(address, slot)` rather than relying on it matching the plan's order.
/// The result of one discover view-call: the raw EVM execution result and the
/// storage/account access list it touched (filtered by `restrict_to`).
/// The outcome of a single cold-start round, always carrying the
/// (possibly partial) [`ColdStartResults`].
///
/// `error` is `Some` only when a hard error short-circuited the round (an
/// accounts- or discover-phase failure in later slices). The verify-only path
/// never sets `error`. Carrying the results unconditionally lets the driver
/// absorb partial outcomes into the run report before propagating the error.