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

from fxsdk.x.fx.crosschain.v1 import query_pb2 as fx_dot_crosschain_dot_v1_dot_query__pb2


class QueryStub(object):
    """Query defines the gRPC querier service
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Params = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/Params',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryParamsRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryParamsResponse.FromString,
                )
        self.CurrentOracleSet = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/CurrentOracleSet',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryCurrentOracleSetRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryCurrentOracleSetResponse.FromString,
                )
        self.OracleSetRequest = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/OracleSetRequest',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetRequestRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetRequestResponse.FromString,
                )
        self.OracleSetConfirm = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/OracleSetConfirm',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmResponse.FromString,
                )
        self.OracleSetConfirmsByNonce = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/OracleSetConfirmsByNonce',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmsByNonceRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmsByNonceResponse.FromString,
                )
        self.LastOracleSetRequests = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/LastOracleSetRequests',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastOracleSetRequestsRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastOracleSetRequestsResponse.FromString,
                )
        self.LastPendingOracleSetRequestByAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/LastPendingOracleSetRequestByAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingOracleSetRequestByAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingOracleSetRequestByAddrResponse.FromString,
                )
        self.LastPendingBatchRequestByAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/LastPendingBatchRequestByAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingBatchRequestByAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingBatchRequestByAddrResponse.FromString,
                )
        self.LastEventNonceByAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/LastEventNonceByAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventNonceByAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventNonceByAddrResponse.FromString,
                )
        self.LastEventBlockHeightByAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/LastEventBlockHeightByAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventBlockHeightByAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventBlockHeightByAddrResponse.FromString,
                )
        self.BatchFees = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BatchFees',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchFeeRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchFeeResponse.FromString,
                )
        self.LastObservedBlockHeight = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/LastObservedBlockHeight',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastObservedBlockHeightRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastObservedBlockHeightResponse.FromString,
                )
        self.OutgoingTxBatches = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/OutgoingTxBatches',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOutgoingTxBatchesRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOutgoingTxBatchesResponse.FromString,
                )
        self.BatchRequestByNonce = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BatchRequestByNonce',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchRequestByNonceRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchRequestByNonceResponse.FromString,
                )
        self.BatchConfirm = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BatchConfirm',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmResponse.FromString,
                )
        self.BatchConfirms = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BatchConfirms',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmsRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmsResponse.FromString,
                )
        self.TokenToDenom = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/TokenToDenom',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryTokenToDenomRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryTokenToDenomResponse.FromString,
                )
        self.DenomToToken = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/DenomToToken',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryDenomToTokenRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryDenomToTokenResponse.FromString,
                )
        self.GetOracleByAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/GetOracleByAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.FromString,
                )
        self.GetOracleByExternalAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/GetOracleByExternalAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByExternalAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.FromString,
                )
        self.GetOracleByBridgerAddr = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/GetOracleByBridgerAddr',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByBridgerAddrRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.FromString,
                )
        self.GetPendingSendToExternal = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/GetPendingSendToExternal',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryPendingSendToExternalRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryPendingSendToExternalResponse.FromString,
                )
        self.Oracles = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/Oracles',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOraclesRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOraclesResponse.FromString,
                )
        self.ProjectedBatchTimeoutHeight = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/ProjectedBatchTimeoutHeight',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryProjectedBatchTimeoutHeightRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryProjectedBatchTimeoutHeightResponse.FromString,
                )
        self.BridgeTokens = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BridgeTokens',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeTokensRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeTokensResponse.FromString,
                )
        self.BridgeCoinByDenom = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BridgeCoinByDenom',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeCoinByDenomRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeCoinByDenomResponse.FromString,
                )
        self.BridgeChainList = channel.unary_unary(
                '/fx.gravity.crosschain.v1.Query/BridgeChainList',
                request_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeChainListRequest.SerializeToString,
                response_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeChainListResponse.FromString,
                )


class QueryServicer(object):
    """Query defines the gRPC querier service
    """

    def Params(self, request, context):
        """Deployments queries deployments
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CurrentOracleSet(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 OracleSetRequest(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 OracleSetConfirm(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 OracleSetConfirmsByNonce(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 LastOracleSetRequests(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 LastPendingOracleSetRequestByAddr(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 LastPendingBatchRequestByAddr(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 LastEventNonceByAddr(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 LastEventBlockHeightByAddr(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 BatchFees(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 LastObservedBlockHeight(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 OutgoingTxBatches(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 BatchRequestByNonce(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 BatchConfirm(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 BatchConfirms(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 TokenToDenom(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 DenomToToken(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 GetOracleByAddr(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 GetOracleByExternalAddr(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 GetOracleByBridgerAddr(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 GetPendingSendToExternal(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 Oracles(self, request, context):
        """Validators queries all oracle that match the given status.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ProjectedBatchTimeoutHeight(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 BridgeTokens(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 BridgeCoinByDenom(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 BridgeChainList(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_QueryServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Params': grpc.unary_unary_rpc_method_handler(
                    servicer.Params,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryParamsRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryParamsResponse.SerializeToString,
            ),
            'CurrentOracleSet': grpc.unary_unary_rpc_method_handler(
                    servicer.CurrentOracleSet,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryCurrentOracleSetRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryCurrentOracleSetResponse.SerializeToString,
            ),
            'OracleSetRequest': grpc.unary_unary_rpc_method_handler(
                    servicer.OracleSetRequest,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetRequestRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetRequestResponse.SerializeToString,
            ),
            'OracleSetConfirm': grpc.unary_unary_rpc_method_handler(
                    servicer.OracleSetConfirm,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmResponse.SerializeToString,
            ),
            'OracleSetConfirmsByNonce': grpc.unary_unary_rpc_method_handler(
                    servicer.OracleSetConfirmsByNonce,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmsByNonceRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmsByNonceResponse.SerializeToString,
            ),
            'LastOracleSetRequests': grpc.unary_unary_rpc_method_handler(
                    servicer.LastOracleSetRequests,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastOracleSetRequestsRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastOracleSetRequestsResponse.SerializeToString,
            ),
            'LastPendingOracleSetRequestByAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.LastPendingOracleSetRequestByAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingOracleSetRequestByAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingOracleSetRequestByAddrResponse.SerializeToString,
            ),
            'LastPendingBatchRequestByAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.LastPendingBatchRequestByAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingBatchRequestByAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingBatchRequestByAddrResponse.SerializeToString,
            ),
            'LastEventNonceByAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.LastEventNonceByAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventNonceByAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventNonceByAddrResponse.SerializeToString,
            ),
            'LastEventBlockHeightByAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.LastEventBlockHeightByAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventBlockHeightByAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventBlockHeightByAddrResponse.SerializeToString,
            ),
            'BatchFees': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchFees,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchFeeRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchFeeResponse.SerializeToString,
            ),
            'LastObservedBlockHeight': grpc.unary_unary_rpc_method_handler(
                    servicer.LastObservedBlockHeight,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastObservedBlockHeightRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastObservedBlockHeightResponse.SerializeToString,
            ),
            'OutgoingTxBatches': grpc.unary_unary_rpc_method_handler(
                    servicer.OutgoingTxBatches,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOutgoingTxBatchesRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOutgoingTxBatchesResponse.SerializeToString,
            ),
            'BatchRequestByNonce': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchRequestByNonce,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchRequestByNonceRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchRequestByNonceResponse.SerializeToString,
            ),
            'BatchConfirm': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchConfirm,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmResponse.SerializeToString,
            ),
            'BatchConfirms': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchConfirms,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmsRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmsResponse.SerializeToString,
            ),
            'TokenToDenom': grpc.unary_unary_rpc_method_handler(
                    servicer.TokenToDenom,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryTokenToDenomRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryTokenToDenomResponse.SerializeToString,
            ),
            'DenomToToken': grpc.unary_unary_rpc_method_handler(
                    servicer.DenomToToken,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryDenomToTokenRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryDenomToTokenResponse.SerializeToString,
            ),
            'GetOracleByAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOracleByAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.SerializeToString,
            ),
            'GetOracleByExternalAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOracleByExternalAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByExternalAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.SerializeToString,
            ),
            'GetOracleByBridgerAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOracleByBridgerAddr,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByBridgerAddrRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.SerializeToString,
            ),
            'GetPendingSendToExternal': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPendingSendToExternal,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryPendingSendToExternalRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryPendingSendToExternalResponse.SerializeToString,
            ),
            'Oracles': grpc.unary_unary_rpc_method_handler(
                    servicer.Oracles,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOraclesRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOraclesResponse.SerializeToString,
            ),
            'ProjectedBatchTimeoutHeight': grpc.unary_unary_rpc_method_handler(
                    servicer.ProjectedBatchTimeoutHeight,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryProjectedBatchTimeoutHeightRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryProjectedBatchTimeoutHeightResponse.SerializeToString,
            ),
            'BridgeTokens': grpc.unary_unary_rpc_method_handler(
                    servicer.BridgeTokens,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeTokensRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeTokensResponse.SerializeToString,
            ),
            'BridgeCoinByDenom': grpc.unary_unary_rpc_method_handler(
                    servicer.BridgeCoinByDenom,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeCoinByDenomRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeCoinByDenomResponse.SerializeToString,
            ),
            'BridgeChainList': grpc.unary_unary_rpc_method_handler(
                    servicer.BridgeChainList,
                    request_deserializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeChainListRequest.FromString,
                    response_serializer=fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeChainListResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'fx.gravity.crosschain.v1.Query', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Query(object):
    """Query defines the gRPC querier service
    """

    @staticmethod
    def Params(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/Params',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryParamsRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryParamsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CurrentOracleSet(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/CurrentOracleSet',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryCurrentOracleSetRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryCurrentOracleSetResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def OracleSetRequest(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/OracleSetRequest',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetRequestRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetRequestResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def OracleSetConfirm(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/OracleSetConfirm',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def OracleSetConfirmsByNonce(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/OracleSetConfirmsByNonce',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmsByNonceRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleSetConfirmsByNonceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LastOracleSetRequests(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/LastOracleSetRequests',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastOracleSetRequestsRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastOracleSetRequestsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LastPendingOracleSetRequestByAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/LastPendingOracleSetRequestByAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingOracleSetRequestByAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingOracleSetRequestByAddrResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LastPendingBatchRequestByAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/LastPendingBatchRequestByAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingBatchRequestByAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastPendingBatchRequestByAddrResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LastEventNonceByAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/LastEventNonceByAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventNonceByAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventNonceByAddrResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LastEventBlockHeightByAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/LastEventBlockHeightByAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventBlockHeightByAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastEventBlockHeightByAddrResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchFees(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BatchFees',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchFeeRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchFeeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LastObservedBlockHeight(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/LastObservedBlockHeight',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastObservedBlockHeightRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryLastObservedBlockHeightResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def OutgoingTxBatches(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/OutgoingTxBatches',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOutgoingTxBatchesRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOutgoingTxBatchesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchRequestByNonce(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BatchRequestByNonce',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchRequestByNonceRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchRequestByNonceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchConfirm(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BatchConfirm',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchConfirms(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BatchConfirms',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmsRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBatchConfirmsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TokenToDenom(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/TokenToDenom',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryTokenToDenomRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryTokenToDenomResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DenomToToken(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/DenomToToken',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryDenomToTokenRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryDenomToTokenResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOracleByAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/GetOracleByAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOracleByExternalAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/GetOracleByExternalAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByExternalAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOracleByBridgerAddr(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/GetOracleByBridgerAddr',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleByBridgerAddrRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOracleResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetPendingSendToExternal(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/GetPendingSendToExternal',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryPendingSendToExternalRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryPendingSendToExternalResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Oracles(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/Oracles',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOraclesRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryOraclesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ProjectedBatchTimeoutHeight(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/ProjectedBatchTimeoutHeight',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryProjectedBatchTimeoutHeightRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryProjectedBatchTimeoutHeightResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BridgeTokens(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BridgeTokens',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeTokensRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeTokensResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BridgeCoinByDenom(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BridgeCoinByDenom',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeCoinByDenomRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeCoinByDenomResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BridgeChainList(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/fx.gravity.crosschain.v1.Query/BridgeChainList',
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeChainListRequest.SerializeToString,
            fx_dot_crosschain_dot_v1_dot_query__pb2.QueryBridgeChainListResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
