pub struct ScheduledAction {
pub anchor: ActionAnchor,
pub kind: ActionKind,
pub transactions: Vec<String>,
pub account_overrides: AccountModifications,
pub feeds_reroute: bool,
pub return_accounts: Vec<Address>,
pub label: Option<String>,
}Expand description
A sequence of transactions the server runs automatically during a backtest,
with results streamed over the actionSubscribe subscription. Under
feeds_reroute the state it ends with also reaches the session’s override
schedule, which every simulation surface reads — reroute candidates and later
scheduled actions alike. An action carrying only account_overrides is purely
declarative: it contributes to that schedule with or without the flag, and
emits no result.
Fields§
§anchor: ActionAnchor§kind: ActionKindIgnored when transactions is empty — that action is a schedule entry, not a run.
transactions: Vec<String>Base64-encoded transactions, carried over the wire as a base64-encoded,
zstd-compressed blob. For a slot anchor (beforeSlot/afterSlot),
entry i fires at slots[i] — the two lists must be the same length,
and repeating a slot runs its entries there in order as one sequence.
For match anchors the whole list fires, in order, at each matching
batch, and for every-slot anchors at each slot the cadence names. For
simulate, each transaction’s writes are visible to the next
without committing to the session ledger. Empty under feeds_reroute
makes the action declarative: account_overrides is then the whole payload.
account_overrides: AccountModificationsAccount state overrides seeding the first transaction’s simulation, per
simulateTransaction modifyAccountStates semantics. Invalid for
kind: send. Without transactions they are themselves the contribution to
the session’s override schedule, feeds_reroute or not.
feeds_reroute: boolFeed the account state this action ends with to the session’s override
schedule, where it applies from the anchored slot to every simulation —
reroute candidates and later scheduled actions — and carries forward per
account until a later action names the same one. Requires a beforeSlot
anchor.
With no transactions that state is account_overrides itself, known at session
creation. With transactions it is their simulated post-state, so the slot’s
overrides are not known until the action runs at slot start.
return_accounts: Vec<Address>Accounts whose post-execution state to return, following
simulateTransaction semantics; reflects cumulative state after the
final transaction.
label: Option<String>Optional client tag echoed back on each actionSubscribe result to correlate it to this action.
Implementations§
Source§impl ScheduledAction
impl ScheduledAction
Sourcepub fn is_computed_override(&self) -> bool
pub fn is_computed_override(&self) -> bool
Whether the action’s resulting state has to be simulated before it can be published — a slot’s overrides are then unknown until the action runs.