class FuzzUtil {

  public Optional<byte[]> fuzzDeposit(final byte[] input) {
    DepositFuzzInput structuredInput = deserialize(input, DepositFuzzInput.class);

    try {
      BeaconState postState =
          structuredInput
              .getState()
              .updated(
                  state -> {
                    BlockProcessorUtil.process_deposits(
                        state, SSZList.singleton(structuredInput.getDeposit()));
                  });
      Bytes output = SimpleOffsetSerializer.serialize(postState);
      return Optional.of(output.toArrayUnsafe());
    } catch (BlockProcessingException e) {
      // "expected error"
      return Optional.empty();
    }
  }

  public  FuzzUtil(final boolean useMainnetConfig, final boolean disable_bls);

}