class MultiTenancyPrivacyController implements PrivacyController {

  @Override
  public Optional<PrivateTransactionProcessor.Result> simulatePrivateTransaction(
      final String privacyGroupId,
      final String enclavePublicKey,
      final CallParameter callParams,
      final long blockNumber) {
    verifyPrivacyGroupContainsEnclavePublicKey(
        privacyGroupId, enclavePublicKey, Optional.of(blockNumber));
    return privacyController.simulatePrivateTransaction(
        privacyGroupId, enclavePublicKey, callParams, blockNumber);
  }

  public  MultiTenancyPrivacyController(
      final PrivacyController privacyController,
      final Optional<BigInteger> chainId,
      final Enclave enclave,
      final boolean onchainPrivacyGroupsEnabled);
  @VisibleForTesting  MultiTenancyPrivacyController(
      final PrivacyController privacyController,
      final Optional<BigInteger> chainId,
      final Enclave enclave,
      final Optional<OnchainPrivacyGroupContract> onchainPrivacyGroupContract);

}