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

from dex.v1 import query_pb2 as dex_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(
                '/nibiru.dex.v1.Query/Params',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryParamsRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryParamsResponse.FromString,
                )
        self.PoolNumber = channel.unary_unary(
                '/nibiru.dex.v1.Query/PoolNumber',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryPoolNumberRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolNumberResponse.FromString,
                )
        self.Pool = channel.unary_unary(
                '/nibiru.dex.v1.Query/Pool',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryPoolRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolResponse.FromString,
                )
        self.Pools = channel.unary_unary(
                '/nibiru.dex.v1.Query/Pools',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryPoolsRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolsResponse.FromString,
                )
        self.PoolParams = channel.unary_unary(
                '/nibiru.dex.v1.Query/PoolParams',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryPoolParamsRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolParamsResponse.FromString,
                )
        self.NumPools = channel.unary_unary(
                '/nibiru.dex.v1.Query/NumPools',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryNumPoolsRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryNumPoolsResponse.FromString,
                )
        self.TotalLiquidity = channel.unary_unary(
                '/nibiru.dex.v1.Query/TotalLiquidity',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryTotalLiquidityRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryTotalLiquidityResponse.FromString,
                )
        self.TotalPoolLiquidity = channel.unary_unary(
                '/nibiru.dex.v1.Query/TotalPoolLiquidity',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryTotalPoolLiquidityRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryTotalPoolLiquidityResponse.FromString,
                )
        self.TotalShares = channel.unary_unary(
                '/nibiru.dex.v1.Query/TotalShares',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryTotalSharesRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryTotalSharesResponse.FromString,
                )
        self.SpotPrice = channel.unary_unary(
                '/nibiru.dex.v1.Query/SpotPrice',
                request_serializer=dex_dot_v1_dot_query__pb2.QuerySpotPriceRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QuerySpotPriceResponse.FromString,
                )
        self.EstimateSwapExactAmountIn = channel.unary_unary(
                '/nibiru.dex.v1.Query/EstimateSwapExactAmountIn',
                request_serializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountInRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountInResponse.FromString,
                )
        self.EstimateSwapExactAmountOut = channel.unary_unary(
                '/nibiru.dex.v1.Query/EstimateSwapExactAmountOut',
                request_serializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountOutRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountOutResponse.FromString,
                )
        self.EstimateJoinExactAmountIn = channel.unary_unary(
                '/nibiru.dex.v1.Query/EstimateJoinExactAmountIn',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountInRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountInResponse.FromString,
                )
        self.EstimateJoinExactAmountOut = channel.unary_unary(
                '/nibiru.dex.v1.Query/EstimateJoinExactAmountOut',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountOutRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountOutResponse.FromString,
                )
        self.EstimateExitExactAmountIn = channel.unary_unary(
                '/nibiru.dex.v1.Query/EstimateExitExactAmountIn',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountInRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountInResponse.FromString,
                )
        self.EstimateExitExactAmountOut = channel.unary_unary(
                '/nibiru.dex.v1.Query/EstimateExitExactAmountOut',
                request_serializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountOutRequest.SerializeToString,
                response_deserializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountOutResponse.FromString,
                )


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

    def Params(self, request, context):
        """Parameters of the dex module.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PoolNumber(self, request, context):
        """Next available pool id number.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Pool(self, request, context):
        """Fetch a pool by id.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Pools(self, request, context):
        """Returns all pools.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PoolParams(self, request, context):
        """Parameters of a single pool.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def NumPools(self, request, context):
        """Number of pools.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TotalLiquidity(self, request, context):
        """Total liquidity across all pools.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TotalPoolLiquidity(self, request, context):
        """Total liquidity in a single pool.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TotalShares(self, request, context):
        """Total shares in a single pool.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SpotPrice(self, request, context):
        """Instantaneous price of an asset in a pool.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateSwapExactAmountIn(self, request, context):
        """Estimates the amount of assets returned given an exact amount of tokens to
        swap.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateSwapExactAmountOut(self, request, context):
        """Estimates the amount of tokens required to return the exact amount of
        assets requested.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateJoinExactAmountIn(self, request, context):
        """Estimates the amount of pool shares returned given an amount of tokens to
        join.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateJoinExactAmountOut(self, request, context):
        """Estimates the amount of tokens required to obtain an exact amount of pool
        shares.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateExitExactAmountIn(self, request, context):
        """Estimates the amount of tokens returned to the user given an exact amount
        of pool shares.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EstimateExitExactAmountOut(self, request, context):
        """Estimates the amount of pool shares required to extract an exact amount of
        tokens from the pool.
        """
        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=dex_dot_v1_dot_query__pb2.QueryParamsRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryParamsResponse.SerializeToString,
            ),
            'PoolNumber': grpc.unary_unary_rpc_method_handler(
                    servicer.PoolNumber,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolNumberRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryPoolNumberResponse.SerializeToString,
            ),
            'Pool': grpc.unary_unary_rpc_method_handler(
                    servicer.Pool,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryPoolResponse.SerializeToString,
            ),
            'Pools': grpc.unary_unary_rpc_method_handler(
                    servicer.Pools,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolsRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryPoolsResponse.SerializeToString,
            ),
            'PoolParams': grpc.unary_unary_rpc_method_handler(
                    servicer.PoolParams,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryPoolParamsRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryPoolParamsResponse.SerializeToString,
            ),
            'NumPools': grpc.unary_unary_rpc_method_handler(
                    servicer.NumPools,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryNumPoolsRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryNumPoolsResponse.SerializeToString,
            ),
            'TotalLiquidity': grpc.unary_unary_rpc_method_handler(
                    servicer.TotalLiquidity,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryTotalLiquidityRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryTotalLiquidityResponse.SerializeToString,
            ),
            'TotalPoolLiquidity': grpc.unary_unary_rpc_method_handler(
                    servicer.TotalPoolLiquidity,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryTotalPoolLiquidityRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryTotalPoolLiquidityResponse.SerializeToString,
            ),
            'TotalShares': grpc.unary_unary_rpc_method_handler(
                    servicer.TotalShares,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryTotalSharesRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryTotalSharesResponse.SerializeToString,
            ),
            'SpotPrice': grpc.unary_unary_rpc_method_handler(
                    servicer.SpotPrice,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QuerySpotPriceRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QuerySpotPriceResponse.SerializeToString,
            ),
            'EstimateSwapExactAmountIn': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateSwapExactAmountIn,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountInRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountInResponse.SerializeToString,
            ),
            'EstimateSwapExactAmountOut': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateSwapExactAmountOut,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountOutRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QuerySwapExactAmountOutResponse.SerializeToString,
            ),
            'EstimateJoinExactAmountIn': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateJoinExactAmountIn,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountInRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountInResponse.SerializeToString,
            ),
            'EstimateJoinExactAmountOut': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateJoinExactAmountOut,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountOutRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryJoinExactAmountOutResponse.SerializeToString,
            ),
            'EstimateExitExactAmountIn': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateExitExactAmountIn,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountInRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountInResponse.SerializeToString,
            ),
            'EstimateExitExactAmountOut': grpc.unary_unary_rpc_method_handler(
                    servicer.EstimateExitExactAmountOut,
                    request_deserializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountOutRequest.FromString,
                    response_serializer=dex_dot_v1_dot_query__pb2.QueryExitExactAmountOutResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'nibiru.dex.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, '/nibiru.dex.v1.Query/Params',
            dex_dot_v1_dot_query__pb2.QueryParamsRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryParamsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PoolNumber(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, '/nibiru.dex.v1.Query/PoolNumber',
            dex_dot_v1_dot_query__pb2.QueryPoolNumberRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryPoolNumberResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Pool(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, '/nibiru.dex.v1.Query/Pool',
            dex_dot_v1_dot_query__pb2.QueryPoolRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryPoolResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Pools(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, '/nibiru.dex.v1.Query/Pools',
            dex_dot_v1_dot_query__pb2.QueryPoolsRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryPoolsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PoolParams(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, '/nibiru.dex.v1.Query/PoolParams',
            dex_dot_v1_dot_query__pb2.QueryPoolParamsRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryPoolParamsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def NumPools(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, '/nibiru.dex.v1.Query/NumPools',
            dex_dot_v1_dot_query__pb2.QueryNumPoolsRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryNumPoolsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TotalLiquidity(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, '/nibiru.dex.v1.Query/TotalLiquidity',
            dex_dot_v1_dot_query__pb2.QueryTotalLiquidityRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryTotalLiquidityResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TotalPoolLiquidity(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, '/nibiru.dex.v1.Query/TotalPoolLiquidity',
            dex_dot_v1_dot_query__pb2.QueryTotalPoolLiquidityRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryTotalPoolLiquidityResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TotalShares(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, '/nibiru.dex.v1.Query/TotalShares',
            dex_dot_v1_dot_query__pb2.QueryTotalSharesRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryTotalSharesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SpotPrice(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, '/nibiru.dex.v1.Query/SpotPrice',
            dex_dot_v1_dot_query__pb2.QuerySpotPriceRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QuerySpotPriceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateSwapExactAmountIn(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, '/nibiru.dex.v1.Query/EstimateSwapExactAmountIn',
            dex_dot_v1_dot_query__pb2.QuerySwapExactAmountInRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QuerySwapExactAmountInResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateSwapExactAmountOut(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, '/nibiru.dex.v1.Query/EstimateSwapExactAmountOut',
            dex_dot_v1_dot_query__pb2.QuerySwapExactAmountOutRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QuerySwapExactAmountOutResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateJoinExactAmountIn(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, '/nibiru.dex.v1.Query/EstimateJoinExactAmountIn',
            dex_dot_v1_dot_query__pb2.QueryJoinExactAmountInRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryJoinExactAmountInResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateJoinExactAmountOut(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, '/nibiru.dex.v1.Query/EstimateJoinExactAmountOut',
            dex_dot_v1_dot_query__pb2.QueryJoinExactAmountOutRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryJoinExactAmountOutResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateExitExactAmountIn(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, '/nibiru.dex.v1.Query/EstimateExitExactAmountIn',
            dex_dot_v1_dot_query__pb2.QueryExitExactAmountInRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryExitExactAmountInResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EstimateExitExactAmountOut(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, '/nibiru.dex.v1.Query/EstimateExitExactAmountOut',
            dex_dot_v1_dot_query__pb2.QueryExitExactAmountOutRequest.SerializeToString,
            dex_dot_v1_dot_query__pb2.QueryExitExactAmountOutResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
