@Override
  public NatPortMapping getPortMapping(
      final NatServiceType serviceType, final NetworkProtocol networkProtocol) {
    try {
      final List<NatPortMapping> natPortMappings =
          getPortMappings().get(TIMEOUT_SECONDS, TimeUnit.SECONDS);
      final Optional<NatPortMapping> foundPortMapping =
          natPortMappings.stream()
              .filter(
                  c ->
                      c.getNatServiceType().equals(serviceType)
                          && c.getProtocol().equals(networkProtocol))
              .findFirst();
      return foundPortMapping.orElseThrow(
          () ->
              new IllegalArgumentException(
                  String.format(
                      "Required service type not found : %s %s", serviceType, networkProtocol)));
    } catch (InterruptedException | ExecutionException | TimeoutException e) {
      throw new RuntimeException(
          String.format("Unable to retrieve the service type : %s", serviceType.toString()));
    }
  }
Retrieve external ip address completable future.

@return the completable future
nat/src/main/java/org/hyperledger/besu/nat/core/AbstractNatManager.java