238 f.
u(source_sequence_); f.
u(command_ordinal_); f.
u(broker_open_epoch_);
239 f.
i(last_broker_open_ms_); f.
u(source_command_sequence_); f.
b(host_ !=
nullptr);
240 f.
b(config_.process_orders_on_close); f.
b(config_.calc_on_order_fills);
241 f.
d(config_.initial_capital); f.
i(config_.default_qty_type); f.
d(config_.default_qty_value);
242 f.
i(config_.pyramiding); f.
d(config_.commission_value); f.
i(config_.commission_type);
243 f.
i(config_.slippage); f.
d(config_.margin_long); f.
d(config_.margin_short);
244 f.
b(config_.close_entries_rule_any); f.
b(config_.src_series_active);
245 f.
i(
static_cast<std::int64_t
>(path_order_));
246 f.
s(staged_.syminfo.ticker); f.
s(staged_.syminfo.tickerid); f.
s(staged_.syminfo.currency);
247 f.
s(staged_.syminfo.basecurrency); f.
s(staged_.syminfo.type); f.
s(staged_.syminfo.timezone);
248 f.
s(staged_.syminfo.session); f.
s(staged_.syminfo.volumetype); f.
s(staged_.syminfo.description);
249 f.
d(staged_.syminfo.mintick); f.
d(staged_.syminfo.pointvalue); f.
d(staged_.syminfo.qty_step);
250 f.
s(staged_.chart_timezone); f.
d(staged_.account_fx);
251 f.
u(staged_.account_fx_effective_from_ms.size());
252 for (
const auto timestamp : staged_.account_fx_effective_from_ms) f.
i(timestamp);
253 f.
u(staged_.account_fx_per_quote.size());
254 for (
const auto rate : staged_.account_fx_per_quote) f.
d(rate);
255 f.
b(staged_.quantity_grid.has_value());
if (staged_.quantity_grid) f.
d(*staged_.quantity_grid);
256 std::vector<std::string> input_keys;
257 for (
const auto& pair : staged_.inputs) input_keys.push_back(pair.first);
258 std::sort(input_keys.begin(), input_keys.end()); f.
u(input_keys.size());
259 for (
const auto& key : input_keys) { f.
s(key); f.
s(staged_.inputs.at(key)); }
260 std::vector<std::string> cohort_keys;
261 for (
const auto& pair : cohorts_by_id_) cohort_keys.push_back(pair.first);
262 std::sort(cohort_keys.begin(), cohort_keys.end()); f.
u(cohort_keys.size());
263 for (
const auto& key : cohort_keys) {
264 const auto& cohort = cohorts_by_id_.at(key);
265 f.
s(key); f.
u(cohort.handle.value); f.
i(cohort.cycle);
266 hash_native_handle_vector(f, cohort.origins.members()); hash_native_handle_vector(f, cohort.opened);
267 std::vector<std::uint64_t> live_origin_keys;
268 live_origin_keys.reserve(cohort.live_units_by_origin.size());
269 for (
const auto& row : cohort.live_units_by_origin) live_origin_keys.push_back(row.first);
270 std::sort(live_origin_keys.begin(), live_origin_keys.end());
271 f.
u(live_origin_keys.size());
272 for (
const auto incarnation : live_origin_keys) {
273 f.
u(incarnation); f.
d(cohort.live_units_by_origin.at(incarnation));
276 f.
u(cohort_order_.size());
277 for (
const auto& key : cohort_order_) f.
s(key);
278 std::vector<std::uint64_t> placement_keys;
279 for (
const auto& pair : placement_) placement_keys.push_back(pair.first);
280 std::sort(placement_keys.begin(), placement_keys.end()); f.
u(placement_keys.size());
281 for (
const auto key : placement_keys) { f.
u(key); hash_placement(f, placement_.at(key)); }
282 std::vector<std::uint64_t> live_keys;
283 for (
const auto& pair : live_by_source_key_) live_keys.push_back(pair.first);
284 std::sort(live_keys.begin(), live_keys.end()); f.
u(live_keys.size());
285 for (
const auto key : live_keys) { f.
u(key); hash_native_handle(f, live_by_source_key_.at(key)); }
286 std::vector<std::uint64_t> bracket_keys;
287 for (
const auto& pair : bracket_families_) bracket_keys.push_back(pair.first);
288 std::sort(bracket_keys.begin(), bracket_keys.end()); f.
u(bracket_keys.size());
289 for (
const auto key : bracket_keys) { f.
u(key); hash_native_handle_vector(f, bracket_families_.at(key).members()); }
290 f.
u(pending_bracket_legs_.size());
291 for (
const auto& leg : pending_bracket_legs_) {
292 hash_native_request(f, leg.request); hash_placement(f, leg.snapshot);
293 f.
s(leg.replacement_key); f.
u(leg.family_key);
295 f.
u(pending_entries_.size());
296 for (
const auto&
entry : pending_entries_) {
297 hash_native_request(f,
entry.request); hash_placement(f,
entry.snapshot);
298 f.
s(
entry.replacement_key);
300 f.
u(delayed_market_orders_.size());
301 for (
const auto&
order : delayed_market_orders_) {
302 hash_native_request(f,
order.request); hash_placement(f,
order.snapshot);
303 f.
s(
order.replacement_key); f.
u(
order.release_open_epoch);
304 f.
b(
order.execute_at_open);
306 f.
u(deferred_open_marketable_sells_.size());
307 for (
const auto& sell : deferred_open_marketable_sells_) {
308 hash_placement(f, sell.snapshot); f.
s(sell.replacement_key); f.
d(sell.fill_price);
309 f.
d(sell.path_position); f.
b(sell.open_marketable);
311 f.
u(throttled_reopen_rearm_.size());
312 for (
const auto& snapshot : throttled_reopen_rearm_) hash_placement(f, snapshot);
313 f.
i(entry_openings_interval_index_); f.
i(entry_openings_this_interval_);
314 f.
u(pending_same_bar_commands_.size());
315 for (
const auto& command : pending_same_bar_commands_) {
316 hash_native_request(f, command.request); hash_placement(f, command.snapshot);
317 f.
s(command.replacement_key); f.
b(command.opening);
319 f.
u(source_shadow_pending_.size());
320 for (
const auto& shadow : source_shadow_pending_) {
321 hash_placement(f, shadow.snapshot); f.
s(shadow.label);
323 f.
d(pending_same_bar_close_qty_);
324 f.
u(pending_relative_exits_.size());
325 for (
const auto&
exit : pending_relative_exits_) {
332 if (!anchored_relative_legs_.empty() || anchored_relative_stats_.anchored != 0
333 || materializing_parent_.incarnation != 0) {
334 f.
s(
"pineforge-source-anchored-legs/v1");
335 f.
u(anchored_relative_stats_.anchored); f.
u(anchored_relative_stats_.adopted);
336 f.
u(anchored_relative_stats_.withdrawn); f.
u(materializing_parent_.incarnation);
337 f.
i(anchored_cohort_sequence_);
338 f.
u(anchored_relative_legs_.size());
339 for (
const auto& leg : anchored_relative_legs_) {
340 f.
s(leg.exit_id); f.
s(leg.from_entry); f.
u(
static_cast<std::uint64_t
>(leg.family));
341 f.
u(leg.handle.incarnation); f.
u(leg.parent.incarnation); f.
b(leg.parent_long);
342 f.
d(leg.operand_ticks); f.
d(leg.trail_offset);
343 hash_native_request(f, leg.request);
346 if (
const auto* anchor = std::get_if<native_order::FromOwnerFill>(
347 &leg.request.anchor)) {
348 f.
d(anchor->offset); f.
b(anchor->ticks);
349 f.
u(
static_cast<std::uint64_t
>(anchor->rounding));
351 f.
b(leg.armed); f.
d(leg.installed_level);
354 f.
u(pending_coof_requests_.size());
355 for (
const auto& pending : pending_coof_requests_) {
356 hash_native_request(f, pending.request); hash_placement(f, pending.snapshot);
357 f.
s(pending.replacement_key); f.
b(pending.opening); f.
u(pending.family_key);
358 f.
b(pending.next_open);
360 f.
u(pending_margin_revivals_.size());
361 for (
const auto& pending : pending_margin_revivals_) {
362 hash_placement(f, pending.snapshot); f.
i(pending.decline_bar);
364 hash_native_handle_vector(f, live_handles_); hash_native_handle_vector(f, first_open_newborns_);
368 hash_native_handle_vector(f, live_handles_);
369 f.
u(dropped_close_receipts_.size());
370 for (
const auto& receipt : dropped_close_receipts_) {
371 f.
s(receipt.source_id); f.
s(receipt.comment); f.
d(receipt.qty);
372 f.
d(receipt.qty_percent); f.
b(receipt.immediately); f.
u(receipt.callsite_token);
373 f.
u(receipt.command_ordinal);
375 f.
u(open_entry_fees_.size());
376 for (
const auto& fee : open_entry_fees_) {
377 hash_native_handle(f, fee.opening); f.
s(fee.source_id); f.
d(fee.units);
378 f.
d(fee.nonpercent_fee);
380 f.
u(trade_exit_phase_.size());
381 for (
const auto phase : trade_exit_phase_) f.
u(phase);
382 std::vector<std::uint64_t> current_debit_ordinals;
383 current_debit_ordinals.reserve(current_debited_applied_ordinals_.size());
384 for (
const auto ordinal : current_debited_applied_ordinals_) current_debit_ordinals.push_back(ordinal);
385 std::sort(current_debit_ordinals.begin(), current_debit_ordinals.end());
386 f.
u(current_debit_ordinals.size());
387 for (
const auto ordinal : current_debit_ordinals) f.
u(ordinal);
388 std::vector<std::uint64_t> intraday_relabel_ordinals;
389 intraday_relabel_ordinals.reserve(intraday_loss_relabel_ordinals_.size());
390 for (
const auto ordinal : intraday_loss_relabel_ordinals_)
391 intraday_relabel_ordinals.push_back(ordinal);
392 std::sort(intraday_relabel_ordinals.begin(), intraday_relabel_ordinals.end());
393 f.
u(intraday_relabel_ordinals.size());
394 for (
const auto ordinal : intraday_relabel_ordinals) f.
u(ordinal);
395 std::vector<std::string> consumed_partial_keys;
396 consumed_partial_keys.reserve(consumed_partial_exit_cycles_.size());
397 for (
const auto& row : consumed_partial_exit_cycles_) consumed_partial_keys.push_back(row.first);
398 std::sort(consumed_partial_keys.begin(), consumed_partial_keys.end());
399 f.
u(consumed_partial_keys.size());
400 for (
const auto& key : consumed_partial_keys) {
401 f.
s(key); f.
i(consumed_partial_exit_cycles_.at(key));
403 std::vector<std::uint64_t> shadowed_openings(
404 bracket_shadowed_openings_.begin(), bracket_shadowed_openings_.end());
405 std::sort(shadowed_openings.begin(), shadowed_openings.end());
406 f.
u(shadowed_openings.size());
407 for (
const auto opening : shadowed_openings) f.
u(opening);
408 std::vector<std::string> named_cancel_keys;
409 named_cancel_keys.reserve(named_entry_cancel_tokens_.size());
410 for (
const auto& row : named_entry_cancel_tokens_) named_cancel_keys.push_back(row.first);
411 std::sort(named_cancel_keys.begin(), named_cancel_keys.end());
412 f.
u(named_cancel_keys.size());
413 for (
const auto& key : named_cancel_keys) {
414 const auto& token = named_entry_cancel_tokens_.at(key);
415 f.
s(key); f.
u(token.entry_incarnation); f.
u(token.surviving_exit_incarnation);
417 const auto hash_close_units = [&](
const auto& values) {
419 for (
const auto& row : values) { f.
s(row.first); f.
d(row.second); }
421 hash_close_units(close_logical_units_);
422 hash_close_units(close_reserved_units_);
423 hash_close_units(close_first_units_);
424 const auto hash_close_owners = [&](
const auto& owners) {
426 for (
const auto& owner : owners) {
427 f.
u(owner.first); hash_close_units(owner.second);
430 hash_close_owners(close_callsite_reserved_units_);
431 hash_close_owners(close_callsite_first_units_);
432 f.
u(close_batch_callsites_.size());
433 for (
const auto& row : close_batch_callsites_) {
434 const auto& site = row.second;
435 f.
u(row.first); f.
b(site.active); f.
u(site.token); f.
i(site.calls);
436 f.
s(site.first_id); f.
d(site.first_target);
437 f.
b(site.first_ledger_consumed); f.
b(site.first_carry_valid);
438 f.
d(site.first_carry_qty); f.
s(site.id); f.
s(site.comment);
439 f.
d(site.target); f.
b(site.retire_ledger_whole);
440 f.
u(site.queue_sequence); f.
u(site.deferred_cleanup_ids.size());
441 for (
const auto&
id : site.deferred_cleanup_ids) f.
s(
id);
443 f.
i(close_batch_bar_); f.
u(close_batch_queue_sequence_);
444 f.
d(close_batch_pending_debt_); f.
d(close_batch_admitted_total_);
445 f.
u(receipt_cursor_);
446 f.
u(last_applied_ordinal_);
447 f.
u(terminal_receipt_cursor_);
448 f.
i(entry_attempt_bar_); f.
u(entry_attempts_on_bar_);
449 f.
b(materializing_relative_);
450 f.
i(current_position_cycle_);
451 f.
i(current_position_sign_);
452 f.
u(next_sequential_group_);
453 f.
b(source_batch_mutated_);
454 f.
b(coof_recalc_active_); f.
b(coof_first_open_);
455 f.
u(coof_market_entry_recalc_incarnation_);
456 f.
u(coof_market_entry_recalc_fill_seq_); f.
u(coof_current_fill_seq_);
459 if (coof_recalc_active_) f.
d(coof_fill_cursor_t_);
460 const auto& coof_coord = coof_context_.coordinate;
461 f.
u(coof_coord.ordinal); f.
i(coof_coord.interval_index); f.
i(coof_coord.open_ms);
462 f.
i(coof_coord.eligible_open_ms); f.
i(coof_coord.last_traded_close_ms);
463 f.
i(coof_coord.next_period_open_ms); f.
i(coof_coord.next_input_open_ms);
464 f.
i(coof_coord.effective_time_ms); f.
i(coof_coord.source_price_time_ms);
465 f.
i(
static_cast<std::int64_t
>(coof_coord.provenance));
466 f.
i(
static_cast<std::int64_t
>(coof_coord.path_phase));
467 f.
i(
static_cast<std::int64_t
>(coof_coord.completion)); f.
i(coof_context_.decision_floor_ms);
469 f.
i(interval.open_ms); f.
i(interval.eligible_open_ms); f.
i(interval.last_traded_close_ms);
470 f.
i(interval.next_period_open_ms); f.
i(interval.next_input_open_ms);
472 hash_coof_interval(coof_context_.input_interval);
473 hash_coof_interval(coof_context_.script_interval);
474 f.
i(coof_context_.sub_index); f.
i(coof_context_.sub_count);
475 f.
b(coof_context_.is_terminal_sub_bar); f.
i(coof_context_.sub_bar_open_ms);
476 f.
i(coof_context_.script_bar_open_ms);
477 f.
b(coof_context_.driver_statistics.intrabar_path_enabled);
478 f.
i(coof_context_.driver_statistics.sub_bars_per_script_bar);
479 f.
i(coof_context_.driver_statistics.samples_per_sub_bar);
480 f.
u(coof_context_.driver_statistics.sub_bars_processed);
481 f.
u(coof_context_.driver_statistics.sample_ticks_processed);
482 f.
d(coof_script_bar_.open); f.
d(coof_script_bar_.high); f.
d(coof_script_bar_.low);
483 f.
d(coof_script_bar_.close); f.
d(coof_script_bar_.volume); f.
i(coof_script_bar_.timestamp);
484 f.
b(coof_script_bar_valid_);
485 std::vector<std::int64_t> pooc_basis_keys;
486 for (
const auto& pair : pooc_close_basis_by_script_bar_) pooc_basis_keys.push_back(pair.first);
487 std::sort(pooc_basis_keys.begin(), pooc_basis_keys.end()); f.
u(pooc_basis_keys.size());
488 for (
const auto key : pooc_basis_keys) { f.
i(key); f.
d(pooc_close_basis_by_script_bar_.at(key)); }
489 f.
d(pooc_open_basis_); f.
i(pooc_open_script_bar_); f.
i(close_all_pending_script_bar_);
490 f.
d(last_fx_rate_); f.
i(position_open_script_bar_); f.
u(position_open_epoch_); f.
i(position_open_bar_index_);
491 f.
u(
static_cast<std::uint64_t
>(position_open_phase_));
492 f.
b(position_open_priced_);
493 f.
i(last_margin_call_script_bar_); f.
i(pooc_close_checkpoint_deferred_ms_);
494 f.
u(last_margin_call_event_ordinal_);
495 f.
u(last_margin_call_entry_incarnation_); f.
i(last_margin_call_position_cycle_);
496 f.
b(last_margin_call_at_script_close_);
497 f.
d(last_margin_call_closed_units_); f.
d(last_margin_call_remaining_units_);
498 f.
i(signal_close_mc_event_bar_);
499 f.
i(signal_close_mc_position_cycle_); f.
u(signal_close_mc_entry_incarnation_);
500 f.
u(signal_close_mc_fill_seq_); f.
d(signal_close_mc_before_qty_);
501 f.
d(signal_close_mc_remaining_qty_); f.
i(risk_coof_direct_script_bar_);
502 f.
u(cap_latest_fill_);
503 f.
b(source_margin_call_enabled_);
504 f.
d(policy_script_bar_.open); f.
d(policy_script_bar_.high);
505 f.
d(policy_script_bar_.low); f.
d(policy_script_bar_.close);
506 f.
d(policy_script_bar_.volume); f.
i(policy_script_bar_.timestamp);
507 f.
b(policy_script_bar_valid_);
512 std::vector<std::uint64_t> market_add_keys(market_pyramid_adds_.begin(),
513 market_pyramid_adds_.end());
514 std::sort(market_add_keys.begin(), market_add_keys.end());
515 f.
u(market_add_keys.size());
516 for (
const auto key : market_add_keys) f.
u(key);
517 std::vector<std::uint64_t> trail_open_keys;
518 trail_open_keys.reserve(trail_state_at_open_.size());
519 for (
const auto& row : trail_state_at_open_) trail_open_keys.push_back(row.first);
520 std::sort(trail_open_keys.begin(), trail_open_keys.end());
521 f.
u(trail_open_keys.size());
522 for (
const auto key : trail_open_keys) {
523 const auto& state = trail_state_at_open_.at(key);
524 f.
u(key); f.
b(state.activated); f.
d(state.best_price);
525 f.
d(state.current_level); f.
u(state.activation_ordinal);
528 f.
i(day_ledger_.current_day); f.
i(day_ledger_.last_loss_day); f.
i(day_ledger_.consecutive_loss_days);
529 f.
i(day_ledger_.intraday_loss_day); f.
d(day_ledger_.intraday_start_equity);
530 f.
d(day_ledger_.intraday_realized); f.
u(day_ledger_.observed_applied_ordinal);
531 f.
i(risk_.direction); f.
i(risk_.max_cons_loss_days); f.
d(risk_.max_drawdown);
532 f.
b(risk_.max_drawdown_percent); f.
d(risk_.max_intraday_loss);
533 f.
b(risk_.max_intraday_loss_percent); f.
d(risk_.max_position_size); f.
b(risk_.halted);
534 f.
d(risk_.observed_peak_equity); f.
d(risk_.observed_max_drawdown);
535 f.
i(risk_.intraday_block_day); f.
b(risk_.intraday_cancel_pending);
536 hash_short_seed_plan(f, short_seed_);
537 hash_short_seed_plan(f, pending_short_seed_.plan);
538 f.
u(pending_short_seed_.expected_open_epoch); f.
b(pending_short_seed_.ready);
539 hash_native_handle(f, short_seed_long_candidate_);
540 f.
i(last_bar_dual_entry_path_); f.
i(last_bar_dual_entry_script_open_ms_);
541 f.
b(pending_view_.owner_ !=
nullptr);
542 f.
i(
static_cast<std::int64_t
>(
cap.attachment())); f.
i(
cap.configuration().limit);
543 f.
b(
cap.configuration().skip_noop_market); f.
b(
cap.configuration().defer_pooc_close);
544 f.
b(
cap.configuration().count_pooc_full_close);
545 const auto& cap_budget =
cap.budget();
546 f.
b(cap_budget.day().has_value());
547 if (cap_budget.day()) f.
i(cap_budget.day()->key);
548 f.
i(cap_budget.charged_slots()); f.
b(cap_budget.latched());
549 f.
b(cap_budget.transfer().has_value());
550 if (
const auto& transfer = cap_budget.transfer()) {
551 f.
i(transfer->day.key); f.
u(transfer->close_fill);
552 f.
i(transfer->source_bar); f.
u(transfer->inheritor);
554 f.
b(
cap.due_cause().has_value());
555 if (
const auto& due =
cap.due_cause()) {
556 f.
u(due->action_id); f.
i(due->charged_day.key); f.
i(due->charged_slots);
557 f.
i(due->trigger_bar); f.
u(due->trigger_order);
561 admission_journal.reflect(
"journal", [&](
const auto& field) { hash_admission_field(f, field); });
568 const std::size_t consumed = std::min(
569 retained_.bars.size(),
static_cast<std::size_t
>(std::max(source_bar_count_, 0)));
570 f.
s(
"pineforge-pine-scheduler/v2"); f.
u(consumed);
571 for (std::size_t index = 0; index < consumed; ++index) {
572 const auto&
bar = retained_.bars[index];
575 f.
s(retained_.input_tf); f.
s(retained_.script_tf); f.
b(retained_.bar_magnifier);
576 f.
i(retained_.magnifier_samples); f.
i(
static_cast<std::int64_t
>(retained_.distribution));
577 f.
b(retained_.volume_weighted); f.
i(retained_.volume_weighted_min_samples);
578 f.
i(retained_.volume_weighted_max_samples); f.
b(retained_.is_stream); f.
i(retained_.warmup_n);
579 f.
b(retained_.simple_run);
580 f.
i(language_.pos_view_freeze_bar_); f.
i(
static_cast<std::int64_t
>(language_.pos_view_frozen_side_));
581 f.
d(language_.pos_view_frozen_qty_); hash_str_double_map(f, language_.pos_view_frozen_entry_qty_);
582 f.
b(language_._src_series_active_); hash_source_series(f, language_._src_open_);
583 hash_source_series(f, language_._src_high_); hash_source_series(f, language_._src_low_);
584 hash_source_series(f, language_._src_close_); hash_source_series(f, language_._src_volume_);
585 hash_source_series(f, language_._src_hl2_); hash_source_series(f, language_._src_hlc3_);
586 hash_source_series(f, language_._src_ohlc4_); hash_source_series(f, language_._src_hlcc4_);
587 f.
d(language_.prev_chart_close_); f.
d(language_.last_chart_close_); f.
i(language_.bar_index_offset_);
588 f.
b(language_.is_first_tick_); f.
b(language_.is_last_tick_); f.
b(language_.history_slot_is_new_);
589 f.
b(language_.coof_checkpoint_contains_current_bar_);
590 hash_source_series(f, language_.coof_checkpoint_src_open_);
591 hash_source_series(f, language_.coof_checkpoint_src_high_);
592 hash_source_series(f, language_.coof_checkpoint_src_low_);
593 hash_source_series(f, language_.coof_checkpoint_src_close_);
594 hash_source_series(f, language_.coof_checkpoint_src_volume_);
595 hash_source_series(f, language_.coof_checkpoint_src_hl2_);
596 hash_source_series(f, language_.coof_checkpoint_src_hlc3_);
597 hash_source_series(f, language_.coof_checkpoint_src_ohlc4_);
598 hash_source_series(f, language_.coof_checkpoint_src_hlcc4_);
599 f.
d(language_.coof_checkpoint_prev_chart_close_); f.
d(language_.coof_checkpoint_last_chart_close_);
600 f.
i(current_script_open_ms_);
601 f.
d(current_script_bar_.open); f.
d(current_script_bar_.high); f.
d(current_script_bar_.low);
602 f.
d(current_script_bar_.close); f.
d(current_script_bar_.volume); f.
i(current_script_bar_.timestamp);
603 f.
b(current_script_bar_valid_); f.
b(saw_open_fill_); f.
i(open_point_fills_); f.
i(source_bar_count_);
604 f.
b(expected_source_bars_ >= source_bar_count_);
605 f.
u(applied_cursor_); f.
i(coof_callback_script_open_);
606 f.
i(last_published_script_open_ms_);
607 f.
i(prior_input_script_open_ms_);
608 f.
i(awaiting_legacy_script_open_ms_);
609 f.
i(last_stream_input_open_ms_);
610 const std::size_t completion_prefix = std::min(input_script_completes_.size(), consumed);
611 f.
u(completion_prefix);
612 for (std::size_t index = 0; index < completion_prefix; ++index)
613 f.
u(input_script_completes_[index]);
614 const std::size_t boundary_prefix = std::min(input_script_boundary_completes_.size(), consumed);
615 f.
u(boundary_prefix);
616 for (std::size_t index = 0; index < boundary_prefix; ++index)
617 f.
u(input_script_boundary_completes_[index]);
618 f.
b(uses_aux_security_feed_);
619 f.
d(deferred_boundary_input_.bar.open); f.
d(deferred_boundary_input_.bar.high);
620 f.
d(deferred_boundary_input_.bar.low); f.
d(deferred_boundary_input_.bar.close);
621 f.
d(deferred_boundary_input_.bar.volume); f.
i(deferred_boundary_input_.bar.timestamp);
622 f.
i(deferred_boundary_input_.next_input_ms);
623 f.
i(deferred_boundary_input_.prior_script_open_ms);
624 f.
b(deferred_boundary_input_.calling_bar_complete);
625 f.
b(deferred_boundary_input_.all_security_states);
626 f.
b(deferred_boundary_input_.active);