@Override
    public String sendCall(
            final String to, final String data, final DefaultBlockParameter defaultBlockParameter)
            throws IOException {
        final EthCall ethCall =
                besu.privCall(
                                privacyGroupId.toString(),
                                Transaction.createEthCallTransaction(getFromAddress(), to, data),
                                defaultBlockParameter)
                        .send();

        assertCallNotReverted(ethCall);
        return ethCall.getValue();
    }
@Test
    public void sendPrivCallRevertedTest() throws IOException {
        when(response.isReverted()).thenReturn(true);
        when(response.getRevertReason()).thenReturn(OWNER_REVERT_MSG_STR);
        when(service.send(any(), any())).thenReturn(response);

        TransactionReceiptProcessor transactionReceiptProcessor =
                new PollingPrivateTransactionReceiptProcessor(
                        besu, DEFAULT_POLLING_FREQUENCY, DEFAULT_POLLING_ATTEMPTS_PER_TX_HASH);

        PrivateTransactionManager besuTransactionManager =
                new PrivateTransactionManager(
                        besu,
                        credentials,
                        transactionReceiptProcessor,
                        ChainIdLong.NONE,
                        PRIVATE_FROM,
                        PRIVACY_GROUP_ID,
                        RESTRICTED);

        ContractCallException thrown =
                assertThrows(
                        ContractCallException.class,
                        () -> besuTransactionManager.sendCall("", "", defaultBlockParameter));
        assertEquals(String.format(REVERT_ERR_STR, OWNER_REVERT_MSG_STR), thrown.getMessage());
    }