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

from boltlight_proto import boltlight_pb2 as boltlight__proto_dot_boltlight__pb2


class UnlockerStub(object):
    """Unlocker service exposes a single operation used to unlock boltlight and
    optionally LN nodes with locking mechanisms.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Unlock = channel.unary_unary(
                '/boltlight.Unlocker/Unlock',
                request_serializer=boltlight__proto_dot_boltlight__pb2.UnlockRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.UnlockResponse.FromString,
                )


class UnlockerServicer(object):
    """Unlocker service exposes a single operation used to unlock boltlight and
    optionally LN nodes with locking mechanisms.
    """

    def Unlock(self, request, context):
        """*
        Unlock unlocks boltlight's secrets using the password chosen during the
        secure phase. The underlying node can also be unlocked, but failures will
        be ignored. This call does not require macaroon authentication.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_UnlockerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Unlock': grpc.unary_unary_rpc_method_handler(
                    servicer.Unlock,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.UnlockRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.UnlockResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'boltlight.Unlocker', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Unlocker(object):
    """Unlocker service exposes a single operation used to unlock boltlight and
    optionally LN nodes with locking mechanisms.
    """

    @staticmethod
    def Unlock(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, '/boltlight.Unlocker/Unlock',
            boltlight__proto_dot_boltlight__pb2.UnlockRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.UnlockResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)


class BoltlightStub(object):
    """Boltlight service exposes all operations related to boltlight itself.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.GetInfo = channel.unary_unary(
                '/boltlight.Boltlight/GetInfo',
                request_serializer=boltlight__proto_dot_boltlight__pb2.GetInfoRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.GetInfoResponse.FromString,
                )
        self.Lock = channel.unary_unary(
                '/boltlight.Boltlight/Lock',
                request_serializer=boltlight__proto_dot_boltlight__pb2.LockRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.LockResponse.FromString,
                )


class BoltlightServicer(object):
    """Boltlight service exposes all operations related to boltlight itself.
    """

    def GetInfo(self, request, context):
        """*
        GetInfo returns info about boltlight and the wrapped implementation
        details.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Lock(self, request, context):
        """*
        Lock locks boltlight by stopping the runtime server (Lightning +
        Boltlight services) and deleting secrets from runtime memory.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_BoltlightServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetInfo,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.GetInfoRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.GetInfoResponse.SerializeToString,
            ),
            'Lock': grpc.unary_unary_rpc_method_handler(
                    servicer.Lock,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.LockRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.LockResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'boltlight.Boltlight', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Boltlight(object):
    """Boltlight service exposes all operations related to boltlight itself.
    """

    @staticmethod
    def GetInfo(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, '/boltlight.Boltlight/GetInfo',
            boltlight__proto_dot_boltlight__pb2.GetInfoRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.GetInfoResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Lock(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, '/boltlight.Boltlight/Lock',
            boltlight__proto_dot_boltlight__pb2.LockRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.LockResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)


class LightningStub(object):
    """Lightning service exposes all LN node related operations. It activates
    after unlocking boltlight and it requires valid macaroons, if they are
    enabled, for each call.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.BalanceOffChain = channel.unary_unary(
                '/boltlight.Lightning/BalanceOffChain',
                request_serializer=boltlight__proto_dot_boltlight__pb2.BalanceOffChainRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.BalanceOffChainResponse.FromString,
                )
        self.BalanceOnChain = channel.unary_unary(
                '/boltlight.Lightning/BalanceOnChain',
                request_serializer=boltlight__proto_dot_boltlight__pb2.BalanceOnChainRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.BalanceOnChainResponse.FromString,
                )
        self.CheckInvoice = channel.unary_unary(
                '/boltlight.Lightning/CheckInvoice',
                request_serializer=boltlight__proto_dot_boltlight__pb2.CheckInvoiceRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.CheckInvoiceResponse.FromString,
                )
        self.CloseChannel = channel.unary_unary(
                '/boltlight.Lightning/CloseChannel',
                request_serializer=boltlight__proto_dot_boltlight__pb2.CloseChannelRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.CloseChannelResponse.FromString,
                )
        self.CreateInvoice = channel.unary_unary(
                '/boltlight.Lightning/CreateInvoice',
                request_serializer=boltlight__proto_dot_boltlight__pb2.CreateInvoiceRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.CreateInvoiceResponse.FromString,
                )
        self.DecodeInvoice = channel.unary_unary(
                '/boltlight.Lightning/DecodeInvoice',
                request_serializer=boltlight__proto_dot_boltlight__pb2.DecodeInvoiceRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.DecodeInvoiceResponse.FromString,
                )
        self.GetNodeInfo = channel.unary_unary(
                '/boltlight.Lightning/GetNodeInfo',
                request_serializer=boltlight__proto_dot_boltlight__pb2.GetNodeInfoRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.GetNodeInfoResponse.FromString,
                )
        self.ListChannels = channel.unary_unary(
                '/boltlight.Lightning/ListChannels',
                request_serializer=boltlight__proto_dot_boltlight__pb2.ListChannelsRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.ListChannelsResponse.FromString,
                )
        self.ListInvoices = channel.unary_unary(
                '/boltlight.Lightning/ListInvoices',
                request_serializer=boltlight__proto_dot_boltlight__pb2.ListInvoicesRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.ListInvoicesResponse.FromString,
                )
        self.ListPayments = channel.unary_unary(
                '/boltlight.Lightning/ListPayments',
                request_serializer=boltlight__proto_dot_boltlight__pb2.ListPaymentsRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.ListPaymentsResponse.FromString,
                )
        self.ListPeers = channel.unary_unary(
                '/boltlight.Lightning/ListPeers',
                request_serializer=boltlight__proto_dot_boltlight__pb2.ListPeersRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.ListPeersResponse.FromString,
                )
        self.ListTransactions = channel.unary_unary(
                '/boltlight.Lightning/ListTransactions',
                request_serializer=boltlight__proto_dot_boltlight__pb2.ListTransactionsRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.ListTransactionsResponse.FromString,
                )
        self.NewAddress = channel.unary_unary(
                '/boltlight.Lightning/NewAddress',
                request_serializer=boltlight__proto_dot_boltlight__pb2.NewAddressRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.NewAddressResponse.FromString,
                )
        self.OpenChannel = channel.unary_unary(
                '/boltlight.Lightning/OpenChannel',
                request_serializer=boltlight__proto_dot_boltlight__pb2.OpenChannelRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.OpenChannelResponse.FromString,
                )
        self.PayInvoice = channel.unary_unary(
                '/boltlight.Lightning/PayInvoice',
                request_serializer=boltlight__proto_dot_boltlight__pb2.PayInvoiceRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.PayInvoiceResponse.FromString,
                )
        self.PayOnChain = channel.unary_unary(
                '/boltlight.Lightning/PayOnChain',
                request_serializer=boltlight__proto_dot_boltlight__pb2.PayOnChainRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.PayOnChainResponse.FromString,
                )
        self.UnlockNode = channel.unary_unary(
                '/boltlight.Lightning/UnlockNode',
                request_serializer=boltlight__proto_dot_boltlight__pb2.UnlockNodeRequest.SerializeToString,
                response_deserializer=boltlight__proto_dot_boltlight__pb2.UnlockNodeResponse.FromString,
                )


class LightningServicer(object):
    """Lightning service exposes all LN node related operations. It activates
    after unlocking boltlight and it requires valid macaroons, if they are
    enabled, for each call.
    """

    def BalanceOffChain(self, request, context):
        """*
        BalanceOffChain returns the off-chain balance, in millisatoshi, available
        across all channels.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BalanceOnChain(self, request, context):
        """*
        BalanceOnChain returns the on-chain balance, in satoshi.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CheckInvoice(self, request, context):
        """*
        CheckInvoice checks if a LN invoice has been paid.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CloseChannel(self, request, context):
        """*
        CloseChannel closes a LN channel.
        If the operation succeds it returns the ID of the closing transaction.
        If the operation takes more than the client timeout, it returns an empty
        response. The operation could still complete.
        In the other cases the operation will fail with an appropriate message.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateInvoice(self, request, context):
        """*
        CreateInvoice creates a LN invoice (BOLT 11).
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DecodeInvoice(self, request, context):
        """*
        DecodeInvoice returns information of a LN invoice from its payment
        request (BOLT 11).
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetNodeInfo(self, request, context):
        """*
        GetNodeInfo returns info about the connected LN node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListChannels(self, request, context):
        """*
        ListChannels returns a list of channels of the connected LN node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListInvoices(self, request, context):
        """*
        ListInvoices returns a list of invoices created by the connected LN node.
        If called without filtering parameters (paid, pending, expired, unknown) it
        returns an unfiltered list.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListPayments(self, request, context):
        """*
        ListPayments returns a list of invoices the connected LN node has paid.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListPeers(self, request, context):
        """*
        ListPeers returns a list of peers connected to the connected LN node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListTransactions(self, request, context):
        """*
        ListTransactions returns a list of on-chain transactions of the connected
        LN node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def NewAddress(self, request, context):
        """*
        NewAddress creates a new bitcoin address under control of the connected LN
        node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def OpenChannel(self, request, context):
        """*
        OpenChannel tries to connect and open a channel with a peer.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PayInvoice(self, request, context):
        """*
        PayInvoice tries to pay a LN invoice from its payment request (BOLT 11).
        An amount can be specified if the invoice doesn't already have it
        included. If a description hash is included in the invoice, its preimage
        must be included in the request.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PayOnChain(self, request, context):
        """*
        PayOnChain tries to pay a bitcoin payment request.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UnlockNode(self, request, context):
        """*
        UnlockNode tries to unlock the underlying node using the node's secrets
        provided during boltlight's secure phase. If an implementation doesn't
        support a locking mechanism, a successful response is returned without even
        checking the request.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_LightningServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BalanceOffChain': grpc.unary_unary_rpc_method_handler(
                    servicer.BalanceOffChain,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.BalanceOffChainRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.BalanceOffChainResponse.SerializeToString,
            ),
            'BalanceOnChain': grpc.unary_unary_rpc_method_handler(
                    servicer.BalanceOnChain,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.BalanceOnChainRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.BalanceOnChainResponse.SerializeToString,
            ),
            'CheckInvoice': grpc.unary_unary_rpc_method_handler(
                    servicer.CheckInvoice,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.CheckInvoiceRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.CheckInvoiceResponse.SerializeToString,
            ),
            'CloseChannel': grpc.unary_unary_rpc_method_handler(
                    servicer.CloseChannel,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.CloseChannelRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.CloseChannelResponse.SerializeToString,
            ),
            'CreateInvoice': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateInvoice,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.CreateInvoiceRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.CreateInvoiceResponse.SerializeToString,
            ),
            'DecodeInvoice': grpc.unary_unary_rpc_method_handler(
                    servicer.DecodeInvoice,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.DecodeInvoiceRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.DecodeInvoiceResponse.SerializeToString,
            ),
            'GetNodeInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetNodeInfo,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.GetNodeInfoRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.GetNodeInfoResponse.SerializeToString,
            ),
            'ListChannels': grpc.unary_unary_rpc_method_handler(
                    servicer.ListChannels,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.ListChannelsRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.ListChannelsResponse.SerializeToString,
            ),
            'ListInvoices': grpc.unary_unary_rpc_method_handler(
                    servicer.ListInvoices,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.ListInvoicesRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.ListInvoicesResponse.SerializeToString,
            ),
            'ListPayments': grpc.unary_unary_rpc_method_handler(
                    servicer.ListPayments,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.ListPaymentsRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.ListPaymentsResponse.SerializeToString,
            ),
            'ListPeers': grpc.unary_unary_rpc_method_handler(
                    servicer.ListPeers,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.ListPeersRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.ListPeersResponse.SerializeToString,
            ),
            'ListTransactions': grpc.unary_unary_rpc_method_handler(
                    servicer.ListTransactions,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.ListTransactionsRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.ListTransactionsResponse.SerializeToString,
            ),
            'NewAddress': grpc.unary_unary_rpc_method_handler(
                    servicer.NewAddress,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.NewAddressRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.NewAddressResponse.SerializeToString,
            ),
            'OpenChannel': grpc.unary_unary_rpc_method_handler(
                    servicer.OpenChannel,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.OpenChannelRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.OpenChannelResponse.SerializeToString,
            ),
            'PayInvoice': grpc.unary_unary_rpc_method_handler(
                    servicer.PayInvoice,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.PayInvoiceRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.PayInvoiceResponse.SerializeToString,
            ),
            'PayOnChain': grpc.unary_unary_rpc_method_handler(
                    servicer.PayOnChain,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.PayOnChainRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.PayOnChainResponse.SerializeToString,
            ),
            'UnlockNode': grpc.unary_unary_rpc_method_handler(
                    servicer.UnlockNode,
                    request_deserializer=boltlight__proto_dot_boltlight__pb2.UnlockNodeRequest.FromString,
                    response_serializer=boltlight__proto_dot_boltlight__pb2.UnlockNodeResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'boltlight.Lightning', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Lightning(object):
    """Lightning service exposes all LN node related operations. It activates
    after unlocking boltlight and it requires valid macaroons, if they are
    enabled, for each call.
    """

    @staticmethod
    def BalanceOffChain(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, '/boltlight.Lightning/BalanceOffChain',
            boltlight__proto_dot_boltlight__pb2.BalanceOffChainRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.BalanceOffChainResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BalanceOnChain(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, '/boltlight.Lightning/BalanceOnChain',
            boltlight__proto_dot_boltlight__pb2.BalanceOnChainRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.BalanceOnChainResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CheckInvoice(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, '/boltlight.Lightning/CheckInvoice',
            boltlight__proto_dot_boltlight__pb2.CheckInvoiceRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.CheckInvoiceResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CloseChannel(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, '/boltlight.Lightning/CloseChannel',
            boltlight__proto_dot_boltlight__pb2.CloseChannelRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.CloseChannelResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateInvoice(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, '/boltlight.Lightning/CreateInvoice',
            boltlight__proto_dot_boltlight__pb2.CreateInvoiceRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.CreateInvoiceResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DecodeInvoice(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, '/boltlight.Lightning/DecodeInvoice',
            boltlight__proto_dot_boltlight__pb2.DecodeInvoiceRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.DecodeInvoiceResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetNodeInfo(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, '/boltlight.Lightning/GetNodeInfo',
            boltlight__proto_dot_boltlight__pb2.GetNodeInfoRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.GetNodeInfoResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListChannels(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, '/boltlight.Lightning/ListChannels',
            boltlight__proto_dot_boltlight__pb2.ListChannelsRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.ListChannelsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListInvoices(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, '/boltlight.Lightning/ListInvoices',
            boltlight__proto_dot_boltlight__pb2.ListInvoicesRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.ListInvoicesResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListPayments(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, '/boltlight.Lightning/ListPayments',
            boltlight__proto_dot_boltlight__pb2.ListPaymentsRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.ListPaymentsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListPeers(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, '/boltlight.Lightning/ListPeers',
            boltlight__proto_dot_boltlight__pb2.ListPeersRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.ListPeersResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListTransactions(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, '/boltlight.Lightning/ListTransactions',
            boltlight__proto_dot_boltlight__pb2.ListTransactionsRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.ListTransactionsResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def NewAddress(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, '/boltlight.Lightning/NewAddress',
            boltlight__proto_dot_boltlight__pb2.NewAddressRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.NewAddressResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def OpenChannel(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, '/boltlight.Lightning/OpenChannel',
            boltlight__proto_dot_boltlight__pb2.OpenChannelRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.OpenChannelResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PayInvoice(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, '/boltlight.Lightning/PayInvoice',
            boltlight__proto_dot_boltlight__pb2.PayInvoiceRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.PayInvoiceResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PayOnChain(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, '/boltlight.Lightning/PayOnChain',
            boltlight__proto_dot_boltlight__pb2.PayOnChainRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.PayOnChainResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UnlockNode(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, '/boltlight.Lightning/UnlockNode',
            boltlight__proto_dot_boltlight__pb2.UnlockNodeRequest.SerializeToString,
            boltlight__proto_dot_boltlight__pb2.UnlockNodeResponse.FromString,
            options, channel_credentials,
            call_credentials, compression, wait_for_ready, timeout, metadata)
