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

from meshtrade.testing.ledger.token_tap.v1 import service_pb2 as meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2


class TokenTapServiceStub(object):
    """
    TokenTapService provides token distribution and minting functionality for testing
    and development purposes. It enables initialization of token taps, querying
    available tokens, and minting tokens to specified addresses.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.InitialiseTokenTaps = channel.unary_unary(
                '/meshtrade.testing.ledger.token_tap.v1.TokenTapService/InitialiseTokenTaps',
                request_serializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.InitialiseTokenTapsRequest.SerializeToString,
                response_deserializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.InitialiseTokenTapsResponse.FromString,
                _registered_method=True)
        self.ListTokenTaps = channel.unary_unary(
                '/meshtrade.testing.ledger.token_tap.v1.TokenTapService/ListTokenTaps',
                request_serializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.ListTokenTapsRequest.SerializeToString,
                response_deserializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.ListTokenTapsResponse.FromString,
                _registered_method=True)
        self.MintToken = channel.unary_unary(
                '/meshtrade.testing.ledger.token_tap.v1.TokenTapService/MintToken',
                request_serializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.MintTokenRequest.SerializeToString,
                response_deserializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.MintTokenResponse.FromString,
                _registered_method=True)


class TokenTapServiceServicer(object):
    """
    TokenTapService provides token distribution and minting functionality for testing
    and development purposes. It enables initialization of token taps, querying
    available tokens, and minting tokens to specified addresses.
    """

    def InitialiseTokenTaps(self, request, context):
        """InitialiseTokenTaps initialises the available token taps.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListTokenTaps(self, request, context):
        """ListTokenTaps retrieves the list of available tokens for minting.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MintToken(self, request, context):
        """MintToken creates and distributes tokens to the specified address.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_TokenTapServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'InitialiseTokenTaps': grpc.unary_unary_rpc_method_handler(
                    servicer.InitialiseTokenTaps,
                    request_deserializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.InitialiseTokenTapsRequest.FromString,
                    response_serializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.InitialiseTokenTapsResponse.SerializeToString,
            ),
            'ListTokenTaps': grpc.unary_unary_rpc_method_handler(
                    servicer.ListTokenTaps,
                    request_deserializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.ListTokenTapsRequest.FromString,
                    response_serializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.ListTokenTapsResponse.SerializeToString,
            ),
            'MintToken': grpc.unary_unary_rpc_method_handler(
                    servicer.MintToken,
                    request_deserializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.MintTokenRequest.FromString,
                    response_serializer=meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.MintTokenResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'meshtrade.testing.ledger.token_tap.v1.TokenTapService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('meshtrade.testing.ledger.token_tap.v1.TokenTapService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class TokenTapService(object):
    """
    TokenTapService provides token distribution and minting functionality for testing
    and development purposes. It enables initialization of token taps, querying
    available tokens, and minting tokens to specified addresses.
    """

    @staticmethod
    def InitialiseTokenTaps(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,
            '/meshtrade.testing.ledger.token_tap.v1.TokenTapService/InitialiseTokenTaps',
            meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.InitialiseTokenTapsRequest.SerializeToString,
            meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.InitialiseTokenTapsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListTokenTaps(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,
            '/meshtrade.testing.ledger.token_tap.v1.TokenTapService/ListTokenTaps',
            meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.ListTokenTapsRequest.SerializeToString,
            meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.ListTokenTapsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MintToken(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,
            '/meshtrade.testing.ledger.token_tap.v1.TokenTapService/MintToken',
            meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.MintTokenRequest.SerializeToString,
            meshtrade_dot_testing_dot_ledger_dot_token__tap_dot_v1_dot_service__pb2.MintTokenResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
