public static <T> void propagateResult(
      final Supplier<CompletableFuture<T>> from, final CompletableFuture<T> to) {
    try {
      propagateResult(from.get(), to);
    } catch (final Throwable t) {
      to.completeExceptionally(t);
    }
  }
Propagates the result of the {@link CompletableFuture} returned from a {@link Supplier} to a
different {@link CompletableFuture}.

<p>When <code>from</code> completes successfully, <code>to</code> will be completed
successfully with the same value. When <code>from</code> completes exceptionally, <code>to
</code> will be completed exceptionally with the same exception.

<p>If the Supplier throws an exception, the target CompletableFuture will be completed
exceptionally with the thrown exception.

@param <T> the type of the success value
@param from the Supplier to get the CompletableFuture to take results and exceptions from
@param to the CompletableFuture to propagate results and exceptions to
util/src/main/java/org/hyperledger/besu/util/FutureUtils.java