async def METHOD_NAME(self, mp_request: MPRequest) -> Any:
    with logging_context(req_id=mp_request.req_id):
        if mp_request.type == MPRequestType.SendTransaction:
            tx_request = cast(MPTxRequest, mp_request)
            return await self._mempool.schedule_mp_tx_request(tx_request)
        elif mp_request.type == MPRequestType.GetPendingTxNonce:
            pending_nonce_req = cast(MPPendingTxNonceRequest, mp_request)
            return self._mempool.get_pending_tx_nonce(pending_nonce_req.sender)
        elif mp_request.type == MPRequestType.GetMempoolTxNonce:
            mempool_nonce_req = cast(MPMempoolTxNonceRequest, mp_request)
            return self._mempool.get_last_tx_nonce(mempool_nonce_req.sender)
        elif mp_request.type == MPRequestType.GetTxByHash:
            pending_tx_by_hash_req = cast(MPPendingTxByHashRequest, mp_request)
            return self._mempool.get_pending_tx_by_hash(pending_tx_by_hash_req.tx_hash)
        elif mp_request.type == MPRequestType.GetTxBySenderNonce:
            req = cast(MPPendingTxBySenderNonceRequest, mp_request)
            return self._mempool.get_pending_tx_by_sender_nonce(req.sender, req.tx_nonce)
        elif mp_request.type == MPRequestType.GetGasPrice:
            return self._mempool.get_gas_price()
        elif mp_request.type == MPRequestType.GetElfParamDict:
            return self._mempool.get_elf_param_dict()
        elif mp_request.type == MPRequestType.TxPoolContent:
            return self._mempool.get_content()
        LOG.error(f"Failed to process mp_request, unknown type: {mp_request.type}")