class MultiTenancyPrivacyController implements PrivacyController {

  @Override
  public String sendTransaction(
      final PrivateTransaction privateTransaction,
      final String enclavePublicKey,
      final Optional<PrivacyGroup> maybePrivacyGroup) {
    verifyPrivateFromMatchesEnclavePublicKey(
        privateTransaction.getPrivateFrom().toBase64String(), enclavePublicKey);
    if (privateTransaction.getPrivacyGroupId().isPresent()) {
      verifyPrivacyGroupContainsEnclavePublicKey(
          privateTransaction.getPrivacyGroupId().get().toBase64String(), enclavePublicKey);
    }
    return privacyController.sendTransaction(
        privateTransaction, enclavePublicKey, maybePrivacyGroup);
  }

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

}