# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from iotexetl.rpc.iotexapi import api_pb2 as proto_dot_api_dot_api__pb2


class APIServiceStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.GetAccount = channel.unary_unary(
                '/iotexapi.APIService/GetAccount',
                request_serializer=proto_dot_api_dot_api__pb2.GetAccountRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetAccountResponse.FromString,
                )
        self.GetActions = channel.unary_unary(
                '/iotexapi.APIService/GetActions',
                request_serializer=proto_dot_api_dot_api__pb2.GetActionsRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetActionsResponse.FromString,
                )
        self.GetBlockMetas = channel.unary_unary(
                '/iotexapi.APIService/GetBlockMetas',
                request_serializer=proto_dot_api_dot_api__pb2.GetBlockMetasRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetBlockMetasResponse.FromString,
                )
        self.GetChainMeta = channel.unary_unary(
                '/iotexapi.APIService/GetChainMeta',
                request_serializer=proto_dot_api_dot_api__pb2.GetChainMetaRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetChainMetaResponse.FromString,
                )
        self.GetServerMeta = channel.unary_unary(
                '/iotexapi.APIService/GetServerMeta',
                request_serializer=proto_dot_api_dot_api__pb2.GetServerMetaRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetServerMetaResponse.FromString,
                )
        self.SendAction = channel.unary_unary(
                '/iotexapi.APIService/SendAction',
                request_serializer=proto_dot_api_dot_api__pb2.SendActionRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.SendActionResponse.FromString,
                )
        self.GetReceiptByAction = channel.unary_unary(
                '/iotexapi.APIService/GetReceiptByAction',
                request_serializer=proto_dot_api_dot_api__pb2.GetReceiptByActionRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetReceiptByActionResponse.FromString,
                )
        self.ReadContract = channel.unary_unary(
                '/iotexapi.APIService/ReadContract',
                request_serializer=proto_dot_api_dot_api__pb2.ReadContractRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.ReadContractResponse.FromString,
                )
        self.SuggestGasPrice = channel.unary_unary(
                '/iotexapi.APIService/SuggestGasPrice',
                request_serializer=proto_dot_api_dot_api__pb2.SuggestGasPriceRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.SuggestGasPriceResponse.FromString,
                )
        self.EstimateGasForAction = channel.unary_unary(
                '/iotexapi.APIService/EstimateGasForAction',
                request_serializer=proto_dot_api_dot_api__pb2.EstimateGasForActionRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.EstimateGasForActionResponse.FromString,
                )
        self.EstimateActionGasConsumption = channel.unary_unary(
                '/iotexapi.APIService/EstimateActionGasConsumption',
                request_serializer=proto_dot_api_dot_api__pb2.EstimateActionGasConsumptionRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.EstimateActionGasConsumptionResponse.FromString,
                )
        self.ReadState = channel.unary_unary(
                '/iotexapi.APIService/ReadState',
                request_serializer=proto_dot_api_dot_api__pb2.ReadStateRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.ReadStateResponse.FromString,
                )
        self.GetEpochMeta = channel.unary_unary(
                '/iotexapi.APIService/GetEpochMeta',
                request_serializer=proto_dot_api_dot_api__pb2.GetEpochMetaRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetEpochMetaResponse.FromString,
                )
        self.GetRawBlocks = channel.unary_unary(
                '/iotexapi.APIService/GetRawBlocks',
                request_serializer=proto_dot_api_dot_api__pb2.GetRawBlocksRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetRawBlocksResponse.FromString,
                )
        self.GetLogs = channel.unary_unary(
                '/iotexapi.APIService/GetLogs',
                request_serializer=proto_dot_api_dot_api__pb2.GetLogsRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetLogsResponse.FromString,
                )
        self.GetEvmTransfersByActionHash = channel.unary_unary(
                '/iotexapi.APIService/GetEvmTransfersByActionHash',
                request_serializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByActionHashRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByActionHashResponse.FromString,
                )
        self.GetEvmTransfersByBlockHeight = channel.unary_unary(
                '/iotexapi.APIService/GetEvmTransfersByBlockHeight',
                request_serializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByBlockHeightRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByBlockHeightResponse.FromString,
                )
        self.GetTransactionLogByActionHash = channel.unary_unary(
                '/iotexapi.APIService/GetTransactionLogByActionHash',
                request_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashResponse.FromString,
                )
        self.GetTransactionLogByBlockHeight = channel.unary_unary(
                '/iotexapi.APIService/GetTransactionLogByBlockHeight',
                request_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightResponse.FromString,
                )
        self.StreamBlocks = channel.unary_stream(
                '/iotexapi.APIService/StreamBlocks',
                request_serializer=proto_dot_api_dot_api__pb2.StreamBlocksRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.StreamBlocksResponse.FromString,
                )
        self.StreamLogs = channel.unary_stream(
                '/iotexapi.APIService/StreamLogs',
                request_serializer=proto_dot_api_dot_api__pb2.StreamLogsRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.StreamLogsResponse.FromString,
                )
        self.GetElectionBuckets = channel.unary_unary(
                '/iotexapi.APIService/GetElectionBuckets',
                request_serializer=proto_dot_api_dot_api__pb2.GetElectionBucketsRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetElectionBucketsResponse.FromString,
                )


class APIServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

    def GetAccount(self, request, context):
        """get the address detail of an address
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetActions(self, request, context):
        """get action(s) by:
        1. start index and action count
        2. action hash
        3. address with start index and action count
        4. get unconfirmed actions by address with start index and action count
        5. block hash with start index and action count
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBlockMetas(self, request, context):
        """get block metadata(s) by:
        1. start index and block count
        2. block hash
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetChainMeta(self, request, context):
        """get chain metadata
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetServerMeta(self, request, context):
        """get server version
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SendAction(self, request, context):
        """sendAction
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetReceiptByAction(self, request, context):
        """get receipt by action Hash
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReadContract(self, request, context):
        """TODO: read contract
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SuggestGasPrice(self, request, context):
        """suggest gas price
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateGasForAction(self, request, context):
        """estimate gas for action, to be deprecated
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateActionGasConsumption(self, request, context):
        """estimate gas for action and transfer not sealed
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReadState(self, request, context):
        """read state from blockchain
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEpochMeta(self, request, context):
        """get epoch metadata
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRawBlocks(self, request, context):
        """get raw blocks data
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLogs(self, request, context):
        """get logs filtered by contract address and topics
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEvmTransfersByActionHash(self, request, context):
        """
        evm transfers APIs

        Deprecated
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEvmTransfersByBlockHeight(self, request, context):
        """Deprecated
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTransactionLogByActionHash(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTransactionLogByBlockHeight(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamBlocks(self, request, context):
        """
        below are streaming APIs

        get block info in stream
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamLogs(self, request, context):
        """get logs filtered by contract address and topics in stream
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetElectionBuckets(self, request, context):
        """
        election APIs
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_APIServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetAccount': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAccount,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetAccountRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetAccountResponse.SerializeToString,
            ),
            'GetActions': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActions,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetActionsRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetActionsResponse.SerializeToString,
            ),
            'GetBlockMetas': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBlockMetas,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetBlockMetasRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetBlockMetasResponse.SerializeToString,
            ),
            'GetChainMeta': grpc.unary_unary_rpc_method_handler(
                    servicer.GetChainMeta,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetChainMetaRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetChainMetaResponse.SerializeToString,
            ),
            'GetServerMeta': grpc.unary_unary_rpc_method_handler(
                    servicer.GetServerMeta,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetServerMetaRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetServerMetaResponse.SerializeToString,
            ),
            'SendAction': grpc.unary_unary_rpc_method_handler(
                    servicer.SendAction,
                    request_deserializer=proto_dot_api_dot_api__pb2.SendActionRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.SendActionResponse.SerializeToString,
            ),
            'GetReceiptByAction': grpc.unary_unary_rpc_method_handler(
                    servicer.GetReceiptByAction,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetReceiptByActionRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetReceiptByActionResponse.SerializeToString,
            ),
            'ReadContract': grpc.unary_unary_rpc_method_handler(
                    servicer.ReadContract,
                    request_deserializer=proto_dot_api_dot_api__pb2.ReadContractRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.ReadContractResponse.SerializeToString,
            ),
            'SuggestGasPrice': grpc.unary_unary_rpc_method_handler(
                    servicer.SuggestGasPrice,
                    request_deserializer=proto_dot_api_dot_api__pb2.SuggestGasPriceRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.SuggestGasPriceResponse.SerializeToString,
            ),
            'EstimateGasForAction': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateGasForAction,
                    request_deserializer=proto_dot_api_dot_api__pb2.EstimateGasForActionRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.EstimateGasForActionResponse.SerializeToString,
            ),
            'EstimateActionGasConsumption': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateActionGasConsumption,
                    request_deserializer=proto_dot_api_dot_api__pb2.EstimateActionGasConsumptionRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.EstimateActionGasConsumptionResponse.SerializeToString,
            ),
            'ReadState': grpc.unary_unary_rpc_method_handler(
                    servicer.ReadState,
                    request_deserializer=proto_dot_api_dot_api__pb2.ReadStateRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.ReadStateResponse.SerializeToString,
            ),
            'GetEpochMeta': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEpochMeta,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetEpochMetaRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetEpochMetaResponse.SerializeToString,
            ),
            'GetRawBlocks': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRawBlocks,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetRawBlocksRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetRawBlocksResponse.SerializeToString,
            ),
            'GetLogs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLogs,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetLogsRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetLogsResponse.SerializeToString,
            ),
            'GetEvmTransfersByActionHash': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEvmTransfersByActionHash,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByActionHashRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByActionHashResponse.SerializeToString,
            ),
            'GetEvmTransfersByBlockHeight': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEvmTransfersByBlockHeight,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByBlockHeightRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetEvmTransfersByBlockHeightResponse.SerializeToString,
            ),
            'GetTransactionLogByActionHash': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTransactionLogByActionHash,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashResponse.SerializeToString,
            ),
            'GetTransactionLogByBlockHeight': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTransactionLogByBlockHeight,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightResponse.SerializeToString,
            ),
            'StreamBlocks': grpc.unary_stream_rpc_method_handler(
                    servicer.StreamBlocks,
                    request_deserializer=proto_dot_api_dot_api__pb2.StreamBlocksRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.StreamBlocksResponse.SerializeToString,
            ),
            'StreamLogs': grpc.unary_stream_rpc_method_handler(
                    servicer.StreamLogs,
                    request_deserializer=proto_dot_api_dot_api__pb2.StreamLogsRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.StreamLogsResponse.SerializeToString,
            ),
            'GetElectionBuckets': grpc.unary_unary_rpc_method_handler(
                    servicer.GetElectionBuckets,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetElectionBucketsRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetElectionBucketsResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'iotexapi.APIService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class APIService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def GetAccount(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetAccount',
            proto_dot_api_dot_api__pb2.GetAccountRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetAccountResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActions(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetActions',
            proto_dot_api_dot_api__pb2.GetActionsRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetActionsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetBlockMetas(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetBlockMetas',
            proto_dot_api_dot_api__pb2.GetBlockMetasRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetBlockMetasResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetChainMeta(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetChainMeta',
            proto_dot_api_dot_api__pb2.GetChainMetaRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetChainMetaResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetServerMeta(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetServerMeta',
            proto_dot_api_dot_api__pb2.GetServerMetaRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetServerMetaResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SendAction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/SendAction',
            proto_dot_api_dot_api__pb2.SendActionRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.SendActionResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetReceiptByAction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetReceiptByAction',
            proto_dot_api_dot_api__pb2.GetReceiptByActionRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetReceiptByActionResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReadContract(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/ReadContract',
            proto_dot_api_dot_api__pb2.ReadContractRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.ReadContractResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SuggestGasPrice(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/SuggestGasPrice',
            proto_dot_api_dot_api__pb2.SuggestGasPriceRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.SuggestGasPriceResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateGasForAction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/EstimateGasForAction',
            proto_dot_api_dot_api__pb2.EstimateGasForActionRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.EstimateGasForActionResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateActionGasConsumption(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/EstimateActionGasConsumption',
            proto_dot_api_dot_api__pb2.EstimateActionGasConsumptionRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.EstimateActionGasConsumptionResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReadState(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/ReadState',
            proto_dot_api_dot_api__pb2.ReadStateRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.ReadStateResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEpochMeta(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetEpochMeta',
            proto_dot_api_dot_api__pb2.GetEpochMetaRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetEpochMetaResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRawBlocks(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetRawBlocks',
            proto_dot_api_dot_api__pb2.GetRawBlocksRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetRawBlocksResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLogs(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetLogs',
            proto_dot_api_dot_api__pb2.GetLogsRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetLogsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEvmTransfersByActionHash(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetEvmTransfersByActionHash',
            proto_dot_api_dot_api__pb2.GetEvmTransfersByActionHashRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetEvmTransfersByActionHashResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEvmTransfersByBlockHeight(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetEvmTransfersByBlockHeight',
            proto_dot_api_dot_api__pb2.GetEvmTransfersByBlockHeightRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetEvmTransfersByBlockHeightResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTransactionLogByActionHash(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetTransactionLogByActionHash',
            proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTransactionLogByBlockHeight(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetTransactionLogByBlockHeight',
            proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StreamBlocks(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/iotexapi.APIService/StreamBlocks',
            proto_dot_api_dot_api__pb2.StreamBlocksRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.StreamBlocksResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StreamLogs(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/iotexapi.APIService/StreamLogs',
            proto_dot_api_dot_api__pb2.StreamLogsRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.StreamLogsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetElectionBuckets(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.APIService/GetElectionBuckets',
            proto_dot_api_dot_api__pb2.GetElectionBucketsRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetElectionBucketsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)


class TransactionLogServiceStub(object):
    """experiment
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.GetTransactionLogByActionHash = channel.unary_unary(
                '/iotexapi.TransactionLogService/GetTransactionLogByActionHash',
                request_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashResponse.FromString,
                )
        self.GetTransactionLogByBlockHeight = channel.unary_unary(
                '/iotexapi.TransactionLogService/GetTransactionLogByBlockHeight',
                request_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightRequest.SerializeToString,
                response_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightResponse.FromString,
                )


class TransactionLogServiceServicer(object):
    """experiment
    """

    def GetTransactionLogByActionHash(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTransactionLogByBlockHeight(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_TransactionLogServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetTransactionLogByActionHash': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTransactionLogByActionHash,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashResponse.SerializeToString,
            ),
            'GetTransactionLogByBlockHeight': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTransactionLogByBlockHeight,
                    request_deserializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightRequest.FromString,
                    response_serializer=proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'iotexapi.TransactionLogService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class TransactionLogService(object):
    """experiment
    """

    @staticmethod
    def GetTransactionLogByActionHash(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.TransactionLogService/GetTransactionLogByActionHash',
            proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetTransactionLogByActionHashResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTransactionLogByBlockHeight(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/iotexapi.TransactionLogService/GetTransactionLogByBlockHeight',
            proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightRequest.SerializeToString,
            proto_dot_api_dot_api__pb2.GetTransactionLogByBlockHeightResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)
