@@ -241,7 +241,9 @@ void Collator::start_up() {
241241 if (optimistic_prev_block_.is_null ()) {
242242 load_prev_states_blocks ();
243243 } else {
244- process_optimistic_prev_block ();
244+ if (!process_optimistic_prev_block ()) {
245+ return ;
246+ }
245247 }
246248 if (is_hardfork_) {
247249 LOG (WARNING) << " generating a hardfork block" ;
@@ -324,15 +326,14 @@ void Collator::load_prev_states_blocks() {
324326/* *
325327 * Write optimistic prev block as block data, load previous state to apply Merkle update to it
326328 */
327- void Collator::process_optimistic_prev_block () {
329+ bool Collator::process_optimistic_prev_block () {
328330 std::vector<BlockIdExt> prev_prev;
329331 BlockIdExt mc_blkid;
330332 bool after_split;
331333 auto S = block::unpack_block_prev_blk_try (optimistic_prev_block_->root_cell (), optimistic_prev_block_->block_id (),
332334 prev_prev, mc_blkid, after_split);
333335 if (S.is_error ()) {
334- fatal_error (S.move_as_error_prefix (" failed to unpack optimistic prev block: " ));
335- return ;
336+ return fatal_error (S.move_as_error_prefix (" failed to unpack optimistic prev block: " ));
336337 }
337338 // 3.1. load state
338339 if (prev_prev.size () == 1 ) {
@@ -366,6 +367,7 @@ void Collator::process_optimistic_prev_block() {
366367 auto token = perf_log_.start_action (PSTRING () << " opt wait_block_data" );
367368 td::actor::send_closure_later (actor_id (this ), &Collator::after_get_block_data, 0 , optimistic_prev_block_,
368369 std::move (token));
370+ return true ;
369371}
370372
371373/* *
0 commit comments