class StateGenerator {

  public SafeFuture<Void> regenerateAllStates(final StateHandler stateHandler) {
    LOG.debug(
        "Regenerate all states for block tree of size {} rooted at block {}",
        blockTree.size(),
        blockTree.getRootHash());
    return regenerateAllStatesInternal(stateHandler).thenAccept(__ -> stateCache.clear());
  }

  private  StateGenerator(
      final HashTree blockTree,
      final BlockProvider blockProvider,
      final AsyncChainStateGenerator chainStateGenerator,
      final StateCache stateCache,
      final int blockBatchSize);

}