@InvokeOnHeader(Web3jConstants.ETH_GET_TRANSACTION_RECEIPT)
    void ethGetTransactionReceipt(Message message) throws IOException {
        String transactionHash
                = message.getHeader(Web3jConstants.TRANSACTION_HASH, configuration::getTransactionHash, String.class);
        Request<?, EthGetTransactionReceipt> request = web3j.ethGetTransactionReceipt(transactionHash);
        setRequestId(message, request);
        EthGetTransactionReceipt response = request.send();
        boolean hasError = checkForError(message, response);
        if (!hasError) {
            message.setBody(response.getTransactionReceipt());
        }
    }
@Test
    public void ethGetTransactionReceiptTest() throws Exception {
        EthGetTransactionReceipt response = Mockito.mock(EthGetTransactionReceipt.class);
        Mockito.when(mockWeb3j.ethGetTransactionReceipt(any())).thenReturn(request);
        Mockito.when(request.send()).thenReturn(response);
        Mockito.when(response.getTransactionReceipt()).thenReturn(Mockito.mock(Optional.class));

        Exchange exchange = createExchangeWithBodyAndHeader(null, OPERATION, Web3jConstants.ETH_GET_TRANSACTION_RECEIPT);
        template.send(exchange);
        Optional<Transaction> body = exchange.getIn().getBody(Optional.class);
        assertNotNull(body);
    }