class MultiTenancyPrivacyController implements PrivacyController {

  @Override
  public Optional<Bytes> getContractCode(
      final String privacyGroupId,
      final Address contractAddress,
      final Hash blockHash,
      final String enclavePublicKey) {
    verifyPrivacyGroupContainsEnclavePublicKey(privacyGroupId, enclavePublicKey);
    return privacyController.getContractCode(
        privacyGroupId, contractAddress, blockHash, enclavePublicKey);
  }

  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);

}