def METHOD_NAME(self, state: SolNeonDecoderState, root_slot: int, slot: int) -> List[SolBlockInfo]:
    block_queue: List[SolBlockInfo] = list()
    while slot >= root_slot:
        sol_block = self._get_sol_block(slot)
        if sol_block.is_empty():
            if not len(block_queue):
                slot -= 1
                continue
            self._raise_sol_history_error(state, f'Failed to get block {slot}')
        block_queue.append(sol_block)
        if slot == root_slot:
            return block_queue
        slot = sol_block.parent_block_slot
    self._raise_sol_history_error(state, f'Fail to get root {root_slot}')