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. 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.
Trait Implementations§
Source§impl Clone for ScheduledAction
impl Clone for ScheduledAction
Source§fn clone(&self) -> ScheduledAction
fn clone(&self) -> ScheduledAction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more