From 32940fdea8db908efd333ca32e6f2a39f4bc83f3 Mon Sep 17 00:00:00 2001 From: Janus Date: Sat, 3 Mar 2018 16:00:57 +0100 Subject: [PATCH] lightning: minimal qt invoice gui should work --- gui/qt/lightning_invoice_list.py | 68 +- lib/lightning.py | 34 +- lib/ln/google/api/annotations_pb2.py | 46 + lib/ln/google/api/http_pb2.py | 236 +++ lib/ln/rpc_pb2.py | 2514 ++++++++++++++++++++++++++ lib/ln/rpc_pb2_grpc.py | 301 +++ testserver.py | 10 +- 7 files changed, 3180 insertions(+), 29 deletions(-) create mode 100644 lib/ln/google/api/annotations_pb2.py create mode 100644 lib/ln/google/api/http_pb2.py create mode 100644 lib/ln/rpc_pb2.py create mode 100644 lib/ln/rpc_pb2_grpc.py diff --git a/gui/qt/lightning_invoice_list.py b/gui/qt/lightning_invoice_list.py index 5c7aa055..2146d735 100644 --- a/gui/qt/lightning_invoice_list.py +++ b/gui/qt/lightning_invoice_list.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import base64 import binascii from PyQt5 import QtCore, QtWidgets from collections import OrderedDict @@ -12,6 +13,8 @@ idx = 0 class MyTableRow(QtWidgets.QTreeWidgetItem): def __init__(self, di): + if "settled" not in di: + di["settled"] = False strs = [str(di[mapping[key]]) for key in range(len(mapping))] print(strs) super(MyTableRow, self).__init__(strs) @@ -23,7 +26,7 @@ class MyTableRow(QtWidgets.QTreeWidgetItem): self.di[idx] = val try: self.setData(revMapp[idx], QtCore.Qt.DisplayRole, '{0}'.format(val)) - except IndexError: + except KeyError: logging.warning("Lightning Invoice field %s unknown", idx) def __str__(self): return str(self.di) @@ -34,23 +37,21 @@ def addInvoiceRow(new): datatable.move_to_end(new["r_hash"], last=False) return made -class SatoshiCountSpinBox(QtWidgets.QSpinBox): - def keyPressEvent(self, e): - super(SatoshiCountSpinBox, self).keyPressEvent(e) - if QtCore.Qt.Key_Return == e.key(): - clickHandler(self) - def clickHandler(numInput, treeView, lightningRpc): - print(numInput.value()) + amt = numInput.value() + if amt < 1: + print("value too small") + return + print("creating invoice with value {}".format(amt)) global idx - obj = { - "r_hash": binascii.hexlify((int.from_bytes(bytearray.fromhex("9500edb0994b7bc23349193486b25c82097045db641f35fa988c0e849acdec29"), "big")+idx).to_bytes(byteorder="big", length=32)).decode("ascii"), - "pay_req": "lntb81920n1pdf258s" + str(idx), - "settled": False - } - treeView.insertTopLevelItem(0, addInvoiceRow(obj)) + #obj = { + # "r_hash": binascii.hexlify((int.from_bytes(bytearray.fromhex("9500edb0994b7bc23349193486b25c82097045db641f35fa988c0e849acdec29"), "big")+idx).to_bytes(byteorder="big", length=32)).decode("ascii"), + # "pay_req": "lntb81920n1pdf258s" + str(idx), + # "settled": False + #} + #treeView.insertTopLevelItem(0, addInvoiceRow(obj)) idx += 1 - lightningCall(lightningRpc, "getinfo")() + lightningCall(lightningRpc, "addinvoice")("--amt=" + str(amt)) class LightningInvoiceList(QtWidgets.QWidget): def create_menu(self, position): @@ -62,14 +63,35 @@ class LightningInvoiceList(QtWidgets.QWidget): cb.setText(pay_req) menu.addAction("Copy payment request", copy) menu.exec_(self._tv.viewport().mapToGlobal(position)) - """ - A simple test widget to contain and own the model and table. - """ + def lightningWorkerHandler(self, sourceClassName, obj): + new = {} + for k, v in obj.items(): + try: + v = binascii.hexlify(base64.b64decode(v)).decode("ascii") + except: + pass + new[k] = v + try: + obj = datatable[new["r_hash"]] + except KeyError: + print("lightning payment invoice r_hash {} unknown!".format(new["r_hash"])) + else: + for k, v in new.items(): + try: + if obj[k] != v: obj[k] = v + except KeyError: + obj[k] = v + def lightningRpcHandler(self, methodName, obj): + if methodName != "addinvoice": + print("ignoring reply {} to {}".format(obj, methodName)) + return + self._tv.insertTopLevelItem(0, addInvoiceRow(obj)) + def __init__(self, parent, lightningWorker, lightningRpc): QtWidgets.QWidget.__init__(self, parent) - lightningWorker.subscribe(lambda *args: print(args)) - lightningRpc.subscribe(lambda *args: print(args)) + lightningWorker.subscribe(self.lightningWorkerHandler) + lightningRpc.subscribe(self.lightningRpcHandler) self._tv=QtWidgets.QTreeWidget(self) self._tv.setHeaderLabels([mapping[i] for i in range(len(mapping))]) @@ -77,6 +99,12 @@ class LightningInvoiceList(QtWidgets.QWidget): self._tv.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self._tv.customContextMenuRequested.connect(self.create_menu) + class SatoshiCountSpinBox(QtWidgets.QSpinBox): + def keyPressEvent(self2, e): + super(SatoshiCountSpinBox, self2).keyPressEvent(e) + if QtCore.Qt.Key_Return == e.key(): + clickHandler(self2, self._tv, lightningRpc) + numInput = SatoshiCountSpinBox(self) button = QtWidgets.QPushButton('Add invoice', self) diff --git a/lib/lightning.py b/lib/lightning.py index 81e02ff6..e0ce5114 100644 --- a/lib/lightning.py +++ b/lib/lightning.py @@ -1,3 +1,4 @@ +import functools import sys import struct import traceback @@ -644,6 +645,7 @@ class LightningRPC(ForeverCoroutineJob): def __init__(self): super(LightningRPC, self).__init__() self.queue = queue.Queue() + self.subscribers = [] # overridden async def run(self, is_running): print("RPC STARTED") @@ -654,19 +656,32 @@ class LightningRPC(ForeverCoroutineJob): await asyncio.sleep(1) pass else: - def call(qitem): + def lightningRpcNetworkRequestThreadTarget(qitem): + applyMethodName = lambda x: functools.partial(x, qitem.methodName) client = Server("http://" + machine + ":8090") - result = getattr(client, qitem.methodName)(base64.b64encode(privateKeyHash[:6]).decode("ascii"), *[str(x) for x in qitem.args]) + argumentStrings = [str(x) for x in qitem.args] + lightningSessionKey = base64.b64encode(privateKeyHash[:6]).decode("ascii") + resolvedMethod = getattr(client, qitem.methodName) + try: + result = resolvedMethod(lightningSessionKey, *argumentStrings) + except BaseException as e: + traceback.print_exc() + for i in self.subscribers: applyMethodName(i)(e) + raise toprint = result try: - if result["stderr"] == "" and result["returncode"] == 0: - toprint = json.loads(result["stdout"]) - except: - pass + assert result["stderr"] == "" and result["returncode"] == 0, "LightningRPC detected error: " + result["stderr"] + toprint = json.loads(result["stdout"]) + for i in self.subscribers: applyMethodName(i)(toprint) + except BaseException as e: + traceback.print_exc() + for i in self.subscribers: applyMethodName(i)(e) self.console.newResult.emit(json.dumps(toprint, indent=4)) - threading.Thread(target=call, args=(qitem, )).start() + threading.Thread(target=lightningRpcNetworkRequestThreadTarget, args=(qitem, )).start() def setConsole(self, console): self.console = console + def subscribe(self, notifyFunction): + self.subscribers.append(notifyFunction) def lightningCall(rpc, methodName): def fun(*args): @@ -706,6 +721,7 @@ class LightningWorker(ForeverCoroutineJob): deser = bitcoin.deserialize_xpub(wallet().keystore.xpub) assert deser[0] == "p2wpkh", deser + self.subscribers = [] async def run(self, is_running): global WALLET, NETWORK @@ -736,14 +752,18 @@ class LightningWorker(ForeverCoroutineJob): await asyncio.wait_for(writer.drain(), 5) while is_running(): obj = await readJson(reader, is_running) + if not obj: continue if "id" not in obj: print("Invoice update?", obj) + for i in self.subscribers: i(obj) continue await asyncio.wait_for(readReqAndReply(obj, writer), 10) except: traceback.print_exc() await asyncio.sleep(5) continue + def subscribe(self, notifyFunction): + self.subscribers.append(functools.partial(notifyFunction, "LightningWorker")) async def readJson(reader, is_running): data = b"" diff --git a/lib/ln/google/api/annotations_pb2.py b/lib/ln/google/api/annotations_pb2.py new file mode 100644 index 00000000..d81bbc55 --- /dev/null +++ b/lib/ln/google/api/annotations_pb2.py @@ -0,0 +1,46 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/api/annotations.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import http_pb2 as google_dot_api_dot_http__pb2 +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/api/annotations.proto', + package='google.api', + syntax='proto3', + serialized_pb=_b('\n\x1cgoogle/api/annotations.proto\x12\ngoogle.api\x1a\x15google/api/http.proto\x1a google/protobuf/descriptor.proto:E\n\x04http\x12\x1e.google.protobuf.MethodOptions\x18\xb0\xca\xbc\" \x01(\x0b\x32\x14.google.api.HttpRuleBn\n\x0e\x63om.google.apiB\x10\x41nnotationsProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xa2\x02\x04GAPIb\x06proto3') + , + dependencies=[google_dot_api_dot_http__pb2.DESCRIPTOR,google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,]) + + +HTTP_FIELD_NUMBER = 72295728 +http = _descriptor.FieldDescriptor( + name='http', full_name='google.api.http', index=0, + number=72295728, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=True, extension_scope=None, + options=None, file=DESCRIPTOR) + +DESCRIPTOR.extensions_by_name['http'] = http +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +http.message_type = google_dot_api_dot_http__pb2._HTTPRULE +google_dot_protobuf_dot_descriptor__pb2.MethodOptions.RegisterExtension(http) + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.apiB\020AnnotationsProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\004GAPI')) +# @@protoc_insertion_point(module_scope) diff --git a/lib/ln/google/api/http_pb2.py b/lib/ln/google/api/http_pb2.py new file mode 100644 index 00000000..80655f88 --- /dev/null +++ b/lib/ln/google/api/http_pb2.py @@ -0,0 +1,236 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/api/http.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/api/http.proto', + package='google.api', + syntax='proto3', + serialized_pb=_b('\n\x15google/api/http.proto\x12\ngoogle.api\"+\n\x04Http\x12#\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRule\"\xea\x01\n\x08HttpRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12\r\n\x03get\x18\x02 \x01(\tH\x00\x12\r\n\x03put\x18\x03 \x01(\tH\x00\x12\x0e\n\x04post\x18\x04 \x01(\tH\x00\x12\x10\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00\x12\x0f\n\x05patch\x18\x06 \x01(\tH\x00\x12/\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00\x12\x0c\n\x04\x62ody\x18\x07 \x01(\t\x12\x31\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleB\t\n\x07pattern\"/\n\x11\x43ustomHttpPattern\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\tBj\n\x0e\x63om.google.apiB\tHttpProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xf8\x01\x01\xa2\x02\x04GAPIb\x06proto3') +) + + + + +_HTTP = _descriptor.Descriptor( + name='Http', + full_name='google.api.Http', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='rules', full_name='google.api.Http.rules', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=37, + serialized_end=80, +) + + +_HTTPRULE = _descriptor.Descriptor( + name='HttpRule', + full_name='google.api.HttpRule', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='selector', full_name='google.api.HttpRule.selector', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='get', full_name='google.api.HttpRule.get', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='put', full_name='google.api.HttpRule.put', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='post', full_name='google.api.HttpRule.post', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delete', full_name='google.api.HttpRule.delete', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='patch', full_name='google.api.HttpRule.patch', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='custom', full_name='google.api.HttpRule.custom', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='body', full_name='google.api.HttpRule.body', index=7, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='additional_bindings', full_name='google.api.HttpRule.additional_bindings', index=8, + number=11, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='pattern', full_name='google.api.HttpRule.pattern', + index=0, containing_type=None, fields=[]), + ], + serialized_start=83, + serialized_end=317, +) + + +_CUSTOMHTTPPATTERN = _descriptor.Descriptor( + name='CustomHttpPattern', + full_name='google.api.CustomHttpPattern', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='kind', full_name='google.api.CustomHttpPattern.kind', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='path', full_name='google.api.CustomHttpPattern.path', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=319, + serialized_end=366, +) + +_HTTP.fields_by_name['rules'].message_type = _HTTPRULE +_HTTPRULE.fields_by_name['custom'].message_type = _CUSTOMHTTPPATTERN +_HTTPRULE.fields_by_name['additional_bindings'].message_type = _HTTPRULE +_HTTPRULE.oneofs_by_name['pattern'].fields.append( + _HTTPRULE.fields_by_name['get']) +_HTTPRULE.fields_by_name['get'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern'] +_HTTPRULE.oneofs_by_name['pattern'].fields.append( + _HTTPRULE.fields_by_name['put']) +_HTTPRULE.fields_by_name['put'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern'] +_HTTPRULE.oneofs_by_name['pattern'].fields.append( + _HTTPRULE.fields_by_name['post']) +_HTTPRULE.fields_by_name['post'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern'] +_HTTPRULE.oneofs_by_name['pattern'].fields.append( + _HTTPRULE.fields_by_name['delete']) +_HTTPRULE.fields_by_name['delete'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern'] +_HTTPRULE.oneofs_by_name['pattern'].fields.append( + _HTTPRULE.fields_by_name['patch']) +_HTTPRULE.fields_by_name['patch'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern'] +_HTTPRULE.oneofs_by_name['pattern'].fields.append( + _HTTPRULE.fields_by_name['custom']) +_HTTPRULE.fields_by_name['custom'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern'] +DESCRIPTOR.message_types_by_name['Http'] = _HTTP +DESCRIPTOR.message_types_by_name['HttpRule'] = _HTTPRULE +DESCRIPTOR.message_types_by_name['CustomHttpPattern'] = _CUSTOMHTTPPATTERN +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Http = _reflection.GeneratedProtocolMessageType('Http', (_message.Message,), dict( + DESCRIPTOR = _HTTP, + __module__ = 'google.api.http_pb2' + # @@protoc_insertion_point(class_scope:google.api.Http) + )) +_sym_db.RegisterMessage(Http) + +HttpRule = _reflection.GeneratedProtocolMessageType('HttpRule', (_message.Message,), dict( + DESCRIPTOR = _HTTPRULE, + __module__ = 'google.api.http_pb2' + # @@protoc_insertion_point(class_scope:google.api.HttpRule) + )) +_sym_db.RegisterMessage(HttpRule) + +CustomHttpPattern = _reflection.GeneratedProtocolMessageType('CustomHttpPattern', (_message.Message,), dict( + DESCRIPTOR = _CUSTOMHTTPPATTERN, + __module__ = 'google.api.http_pb2' + # @@protoc_insertion_point(class_scope:google.api.CustomHttpPattern) + )) +_sym_db.RegisterMessage(CustomHttpPattern) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.apiB\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\370\001\001\242\002\004GAPI')) +# @@protoc_insertion_point(module_scope) diff --git a/lib/ln/rpc_pb2.py b/lib/ln/rpc_pb2.py new file mode 100644 index 00000000..c3261dd2 --- /dev/null +++ b/lib/ln/rpc_pb2.py @@ -0,0 +1,2514 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: rpc.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='rpc.proto', + package='electrumbridge', + syntax='proto3', + serialized_pb=_b('\n\trpc.proto\x12\x0e\x65lectrumbridge\x1a\x1cgoogle/api/annotations.proto\"?\n\x12SignMessageRequest\x12\x19\n\x11messageToBeSigned\x18\x01 \x01(\x0c\x12\x0e\n\x06pubKey\x18\x02 \x01(\x0c\"H\n\x13SignMessageResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x11\n\tsignature\x18\x03 \x01(\x0c\"\x11\n\x0fIsSyncedRequest\"\"\n\x10IsSyncedResponse\x12\x0e\n\x06synced\x18\x01 \x01(\x08\"S\n\x12SendOutputsRequest\x12&\n\x07outputs\x18\x01 \x03(\x0b\x32\x15.electrumbridge.TxOut\x12\x15\n\rfeeSatPerByte\x18\x02 \x01(\x03\"I\n\x13SendOutputsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nresultHash\x18\x03 \x01(\t\"\x1f\n\x1dListTransactionDetailsRequest\"T\n\x1eListTransactionDetailsResponse\x12\x32\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32!.electrumbridge.TransactionDetail\"\x98\x01\n\x11TransactionDetail\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03\x12\x18\n\x10numConfirmations\x18\x03 \x01(\x05\x12\x11\n\tblockHash\x18\x04 \x01(\t\x12\x13\n\x0b\x62lockHeight\x18\x05 \x01(\x05\x12\x11\n\ttimestamp\x18\x06 \x01(\x03\x12\x11\n\ttotalFees\x18\x07 \x01(\x03\"A\n\x13LockOutpointRequest\x12*\n\x08outpoint\x18\x01 \x01(\x0b\x32\x18.electrumbridge.OutPoint\"C\n\x15UnlockOutpointRequest\x12*\n\x08outpoint\x18\x01 \x01(\x0b\x32\x18.electrumbridge.OutPoint\"\x16\n\x14LockOutpointResponse\"\x18\n\x16UnlockOutpointResponse\"\'\n\x19PublishTransactionRequest\x12\n\n\x02tx\x18\x01 \x01(\x0c\"<\n\x1aPublishTransactionResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"T\n\x14SignOutputRawRequest\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x30\n\x08signDesc\x18\x02 \x01(\x0b\x32\x1e.electrumbridge.SignDescriptor\"*\n\x15SignOutputRawResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\"Y\n\x19\x43omputeInputScriptRequest\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x30\n\x08signDesc\x18\x02 \x01(\x0b\x32\x1e.electrumbridge.SignDescriptor\"\xdc\x01\n\x0eSignDescriptor\x12\x0e\n\x06pubKey\x18\x01 \x01(\x0c\x12,\n\tsigHashes\x18\x02 \x01(\x0b\x32\x19.electrumbridge.SigHashes\x12\x10\n\x08hashType\x18\x03 \x01(\x05\x12\x13\n\x0bsingleTweak\x18\x04 \x01(\x0c\x12\x13\n\x0b\x64oubleTweak\x18\x05 \x01(\x0c\x12\x15\n\rwitnessScript\x18\x06 \x01(\x0c\x12%\n\x06output\x18\x07 \x01(\x0b\x32\x15.electrumbridge.TxOut\x12\x12\n\ninputIndex\x18\x08 \x01(\x05\"L\n\tSigHashes\x12\x14\n\x0chashPrevOuts\x18\x01 \x01(\t\x12\x14\n\x0chashSequence\x18\x02 \x01(\t\x12\x13\n\x0bhashOutputs\x18\x03 \x01(\t\"F\n\x1a\x43omputeInputScriptResponse\x12\x15\n\rwitnessScript\x18\x01 \x03(\x0c\x12\x11\n\tscriptSig\x18\x02 \x01(\x0c\"C\n\x15\x46\x65tchInputInfoRequest\x12*\n\x08outPoint\x18\x01 \x01(\x0b\x32\x18.electrumbridge.OutPoint\"L\n\x16\x46\x65tchInputInfoResponse\x12\x0c\n\x04mine\x18\x01 \x01(\x08\x12$\n\x05txOut\x18\x02 \x01(\x0b\x32\x15.electrumbridge.TxOut\"(\n\x05TxOut\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x10\n\x08pkScript\x18\x02 \x01(\x0c\"\x12\n\x10NewRawKeyRequest\"&\n\x11NewRawKeyResponse\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\"\"\n\x10SetHdSeedRequest\x12\x0e\n\x06hdSeed\x18\x01 \x01(\x0c\"\x13\n\x11SetHdSeedResponse\"5\n\x19ListUnspentWitnessRequest\x12\x18\n\x10minConfirmations\x18\x01 \x01(\x05\"A\n\x1aListUnspentWitnessResponse\x12#\n\x05utxos\x18\x01 \x03(\x0b\x32\x14.electrumbridge.Utxo\"\xb2\x01\n\x04Utxo\x12\r\n\x05value\x18\x01 \x01(\x04\x12*\n\x08outPoint\x18\x02 \x01(\x0b\x32\x18.electrumbridge.OutPoint\x12\x30\n\x0b\x61\x64\x64ressType\x18\x03 \x01(\x0e\x32\x1b.electrumbridge.AddressType\x12\x15\n\rwitnessScript\x18\x04 \x01(\x0c\x12\x14\n\x0credeemScript\x18\x05 \x01(\x0c\x12\x10\n\x08pkScript\x18\x06 \x01(\x0c\"\'\n\x08OutPoint\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\r\"\x15\n\x13\x46\x65tchRootKeyRequest\"\'\n\x14\x46\x65tchRootKeyResponse\x12\x0f\n\x07rootKey\x18\x01 \x01(\x0c\"A\n\x17\x43onfirmedBalanceRequest\x12\x15\n\rconfirmations\x18\x01 \x01(\x05\x12\x0f\n\x07witness\x18\x02 \x01(\x08\"*\n\x18\x43onfirmedBalanceResponse\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x03\"N\n\x11NewAddressRequest\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.electrumbridge.AddressType\x12\x0e\n\x06\x63hange\x18\x02 \x01(\x08\".\n\x12NewAddressResponse\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress*O\n\x0b\x41\x64\x64ressType\x12\x17\n\x13WITNESS_PUBKEY_HASH\x10\x00\x12\x16\n\x12NESTED_PUBKEY_HASH\x10\x01\x12\x0f\n\x0bPUBKEY_HASH\x10\x02\x32\xc1\x0f\n\x0e\x45lectrumBridge\x12g\n\tSetHdSeed\x12 .electrumbridge.SetHdSeedRequest\x1a!.electrumbridge.SetHdSeedResponse\"\x15\x82\xd3\xe4\x93\x02\x0f\x12\r/v1/sethdseed\x12k\n\nNewAddress\x12!.electrumbridge.NewAddressRequest\x1a\".electrumbridge.NewAddressResponse\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/v1/newaddress\x12\x83\x01\n\x10\x43onfirmedBalance\x12\'.electrumbridge.ConfirmedBalanceRequest\x1a(.electrumbridge.ConfirmedBalanceResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/v1/confirmedbalance\x12s\n\x0c\x46\x65tchRootKey\x12#.electrumbridge.FetchRootKeyRequest\x1a$.electrumbridge.FetchRootKeyResponse\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/v1/fetchrootkey\x12\x8b\x01\n\x12ListUnspentWitness\x12).electrumbridge.ListUnspentWitnessRequest\x1a*.electrumbridge.ListUnspentWitnessResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/listunspentwitness\x12g\n\tNewRawKey\x12 .electrumbridge.NewRawKeyRequest\x1a!.electrumbridge.NewRawKeyResponse\"\x15\x82\xd3\xe4\x93\x02\x0f\x12\r/v1/newrawkey\x12{\n\x0e\x46\x65tchInputInfo\x12%.electrumbridge.FetchInputInfoRequest\x1a&.electrumbridge.FetchInputInfoResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/fetchinputinfo\x12\x8b\x01\n\x12\x43omputeInputScript\x12).electrumbridge.ComputeInputScriptRequest\x1a*.electrumbridge.ComputeInputScriptResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/computeinputscript\x12w\n\rSignOutputRaw\x12$.electrumbridge.SignOutputRawRequest\x1a%.electrumbridge.SignOutputRawResponse\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/v1/signoutputraw\x12\x8b\x01\n\x12PublishTransaction\x12).electrumbridge.PublishTransactionRequest\x1a*.electrumbridge.PublishTransactionResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/publishtransaction\x12s\n\x0cLockOutpoint\x12#.electrumbridge.LockOutpointRequest\x1a$.electrumbridge.LockOutpointResponse\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/v1/lockoutpoint\x12{\n\x0eUnlockOutpoint\x12%.electrumbridge.UnlockOutpointRequest\x1a&.electrumbridge.UnlockOutpointResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/unlockoutpoint\x12\x9b\x01\n\x16ListTransactionDetails\x12-.electrumbridge.ListTransactionDetailsRequest\x1a..electrumbridge.ListTransactionDetailsResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/v1/listtransactiondetails\x12o\n\x0bSendOutputs\x12\".electrumbridge.SendOutputsRequest\x1a#.electrumbridge.SendOutputsResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/sendoutputs\x12\x63\n\x08IsSynced\x12\x1f.electrumbridge.IsSyncedRequest\x1a .electrumbridge.IsSyncedResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/v1/issynced\x12o\n\x0bSignMessage\x12\".electrumbridge.SignMessageRequest\x1a#.electrumbridge.SignMessageResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/signmessageb\x06proto3') + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + +_ADDRESSTYPE = _descriptor.EnumDescriptor( + name='AddressType', + full_name='electrumbridge.AddressType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='WITNESS_PUBKEY_HASH', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NESTED_PUBKEY_HASH', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PUBKEY_HASH', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=2523, + serialized_end=2602, +) +_sym_db.RegisterEnumDescriptor(_ADDRESSTYPE) + +AddressType = enum_type_wrapper.EnumTypeWrapper(_ADDRESSTYPE) +WITNESS_PUBKEY_HASH = 0 +NESTED_PUBKEY_HASH = 1 +PUBKEY_HASH = 2 + + + +_SIGNMESSAGEREQUEST = _descriptor.Descriptor( + name='SignMessageRequest', + full_name='electrumbridge.SignMessageRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='messageToBeSigned', full_name='electrumbridge.SignMessageRequest.messageToBeSigned', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='pubKey', full_name='electrumbridge.SignMessageRequest.pubKey', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=59, + serialized_end=122, +) + + +_SIGNMESSAGERESPONSE = _descriptor.Descriptor( + name='SignMessageResponse', + full_name='electrumbridge.SignMessageResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='error', full_name='electrumbridge.SignMessageResponse.error', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='success', full_name='electrumbridge.SignMessageResponse.success', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='signature', full_name='electrumbridge.SignMessageResponse.signature', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=196, +) + + +_ISSYNCEDREQUEST = _descriptor.Descriptor( + name='IsSyncedRequest', + full_name='electrumbridge.IsSyncedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=198, + serialized_end=215, +) + + +_ISSYNCEDRESPONSE = _descriptor.Descriptor( + name='IsSyncedResponse', + full_name='electrumbridge.IsSyncedResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='synced', full_name='electrumbridge.IsSyncedResponse.synced', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=217, + serialized_end=251, +) + + +_SENDOUTPUTSREQUEST = _descriptor.Descriptor( + name='SendOutputsRequest', + full_name='electrumbridge.SendOutputsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='outputs', full_name='electrumbridge.SendOutputsRequest.outputs', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='feeSatPerByte', full_name='electrumbridge.SendOutputsRequest.feeSatPerByte', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=253, + serialized_end=336, +) + + +_SENDOUTPUTSRESPONSE = _descriptor.Descriptor( + name='SendOutputsResponse', + full_name='electrumbridge.SendOutputsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='success', full_name='electrumbridge.SendOutputsResponse.success', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='error', full_name='electrumbridge.SendOutputsResponse.error', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='resultHash', full_name='electrumbridge.SendOutputsResponse.resultHash', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=338, + serialized_end=411, +) + + +_LISTTRANSACTIONDETAILSREQUEST = _descriptor.Descriptor( + name='ListTransactionDetailsRequest', + full_name='electrumbridge.ListTransactionDetailsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=413, + serialized_end=444, +) + + +_LISTTRANSACTIONDETAILSRESPONSE = _descriptor.Descriptor( + name='ListTransactionDetailsResponse', + full_name='electrumbridge.ListTransactionDetailsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='details', full_name='electrumbridge.ListTransactionDetailsResponse.details', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=446, + serialized_end=530, +) + + +_TRANSACTIONDETAIL = _descriptor.Descriptor( + name='TransactionDetail', + full_name='electrumbridge.TransactionDetail', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='hash', full_name='electrumbridge.TransactionDetail.hash', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='value', full_name='electrumbridge.TransactionDetail.value', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='numConfirmations', full_name='electrumbridge.TransactionDetail.numConfirmations', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='blockHash', full_name='electrumbridge.TransactionDetail.blockHash', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='blockHeight', full_name='electrumbridge.TransactionDetail.blockHeight', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='timestamp', full_name='electrumbridge.TransactionDetail.timestamp', index=5, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='totalFees', full_name='electrumbridge.TransactionDetail.totalFees', index=6, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=533, + serialized_end=685, +) + + +_LOCKOUTPOINTREQUEST = _descriptor.Descriptor( + name='LockOutpointRequest', + full_name='electrumbridge.LockOutpointRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='outpoint', full_name='electrumbridge.LockOutpointRequest.outpoint', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=687, + serialized_end=752, +) + + +_UNLOCKOUTPOINTREQUEST = _descriptor.Descriptor( + name='UnlockOutpointRequest', + full_name='electrumbridge.UnlockOutpointRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='outpoint', full_name='electrumbridge.UnlockOutpointRequest.outpoint', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=754, + serialized_end=821, +) + + +_LOCKOUTPOINTRESPONSE = _descriptor.Descriptor( + name='LockOutpointResponse', + full_name='electrumbridge.LockOutpointResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=823, + serialized_end=845, +) + + +_UNLOCKOUTPOINTRESPONSE = _descriptor.Descriptor( + name='UnlockOutpointResponse', + full_name='electrumbridge.UnlockOutpointResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=847, + serialized_end=871, +) + + +_PUBLISHTRANSACTIONREQUEST = _descriptor.Descriptor( + name='PublishTransactionRequest', + full_name='electrumbridge.PublishTransactionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='tx', full_name='electrumbridge.PublishTransactionRequest.tx', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=873, + serialized_end=912, +) + + +_PUBLISHTRANSACTIONRESPONSE = _descriptor.Descriptor( + name='PublishTransactionResponse', + full_name='electrumbridge.PublishTransactionResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='success', full_name='electrumbridge.PublishTransactionResponse.success', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='error', full_name='electrumbridge.PublishTransactionResponse.error', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=914, + serialized_end=974, +) + + +_SIGNOUTPUTRAWREQUEST = _descriptor.Descriptor( + name='SignOutputRawRequest', + full_name='electrumbridge.SignOutputRawRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='tx', full_name='electrumbridge.SignOutputRawRequest.tx', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='signDesc', full_name='electrumbridge.SignOutputRawRequest.signDesc', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=976, + serialized_end=1060, +) + + +_SIGNOUTPUTRAWRESPONSE = _descriptor.Descriptor( + name='SignOutputRawResponse', + full_name='electrumbridge.SignOutputRawResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='signature', full_name='electrumbridge.SignOutputRawResponse.signature', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1062, + serialized_end=1104, +) + + +_COMPUTEINPUTSCRIPTREQUEST = _descriptor.Descriptor( + name='ComputeInputScriptRequest', + full_name='electrumbridge.ComputeInputScriptRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='tx', full_name='electrumbridge.ComputeInputScriptRequest.tx', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='signDesc', full_name='electrumbridge.ComputeInputScriptRequest.signDesc', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1106, + serialized_end=1195, +) + + +_SIGNDESCRIPTOR = _descriptor.Descriptor( + name='SignDescriptor', + full_name='electrumbridge.SignDescriptor', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='pubKey', full_name='electrumbridge.SignDescriptor.pubKey', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='sigHashes', full_name='electrumbridge.SignDescriptor.sigHashes', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='hashType', full_name='electrumbridge.SignDescriptor.hashType', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='singleTweak', full_name='electrumbridge.SignDescriptor.singleTweak', index=3, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='doubleTweak', full_name='electrumbridge.SignDescriptor.doubleTweak', index=4, + number=5, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='witnessScript', full_name='electrumbridge.SignDescriptor.witnessScript', index=5, + number=6, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='output', full_name='electrumbridge.SignDescriptor.output', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='inputIndex', full_name='electrumbridge.SignDescriptor.inputIndex', index=7, + number=8, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1198, + serialized_end=1418, +) + + +_SIGHASHES = _descriptor.Descriptor( + name='SigHashes', + full_name='electrumbridge.SigHashes', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='hashPrevOuts', full_name='electrumbridge.SigHashes.hashPrevOuts', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='hashSequence', full_name='electrumbridge.SigHashes.hashSequence', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='hashOutputs', full_name='electrumbridge.SigHashes.hashOutputs', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1420, + serialized_end=1496, +) + + +_COMPUTEINPUTSCRIPTRESPONSE = _descriptor.Descriptor( + name='ComputeInputScriptResponse', + full_name='electrumbridge.ComputeInputScriptResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='witnessScript', full_name='electrumbridge.ComputeInputScriptResponse.witnessScript', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='scriptSig', full_name='electrumbridge.ComputeInputScriptResponse.scriptSig', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1498, + serialized_end=1568, +) + + +_FETCHINPUTINFOREQUEST = _descriptor.Descriptor( + name='FetchInputInfoRequest', + full_name='electrumbridge.FetchInputInfoRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='outPoint', full_name='electrumbridge.FetchInputInfoRequest.outPoint', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1570, + serialized_end=1637, +) + + +_FETCHINPUTINFORESPONSE = _descriptor.Descriptor( + name='FetchInputInfoResponse', + full_name='electrumbridge.FetchInputInfoResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='mine', full_name='electrumbridge.FetchInputInfoResponse.mine', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='txOut', full_name='electrumbridge.FetchInputInfoResponse.txOut', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1639, + serialized_end=1715, +) + + +_TXOUT = _descriptor.Descriptor( + name='TxOut', + full_name='electrumbridge.TxOut', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='electrumbridge.TxOut.value', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='pkScript', full_name='electrumbridge.TxOut.pkScript', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1717, + serialized_end=1757, +) + + +_NEWRAWKEYREQUEST = _descriptor.Descriptor( + name='NewRawKeyRequest', + full_name='electrumbridge.NewRawKeyRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1759, + serialized_end=1777, +) + + +_NEWRAWKEYRESPONSE = _descriptor.Descriptor( + name='NewRawKeyResponse', + full_name='electrumbridge.NewRawKeyResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='publicKey', full_name='electrumbridge.NewRawKeyResponse.publicKey', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1779, + serialized_end=1817, +) + + +_SETHDSEEDREQUEST = _descriptor.Descriptor( + name='SetHdSeedRequest', + full_name='electrumbridge.SetHdSeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='hdSeed', full_name='electrumbridge.SetHdSeedRequest.hdSeed', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1819, + serialized_end=1853, +) + + +_SETHDSEEDRESPONSE = _descriptor.Descriptor( + name='SetHdSeedResponse', + full_name='electrumbridge.SetHdSeedResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1855, + serialized_end=1874, +) + + +_LISTUNSPENTWITNESSREQUEST = _descriptor.Descriptor( + name='ListUnspentWitnessRequest', + full_name='electrumbridge.ListUnspentWitnessRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='minConfirmations', full_name='electrumbridge.ListUnspentWitnessRequest.minConfirmations', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1876, + serialized_end=1929, +) + + +_LISTUNSPENTWITNESSRESPONSE = _descriptor.Descriptor( + name='ListUnspentWitnessResponse', + full_name='electrumbridge.ListUnspentWitnessResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='utxos', full_name='electrumbridge.ListUnspentWitnessResponse.utxos', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1931, + serialized_end=1996, +) + + +_UTXO = _descriptor.Descriptor( + name='Utxo', + full_name='electrumbridge.Utxo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='electrumbridge.Utxo.value', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='outPoint', full_name='electrumbridge.Utxo.outPoint', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='addressType', full_name='electrumbridge.Utxo.addressType', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='witnessScript', full_name='electrumbridge.Utxo.witnessScript', index=3, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='redeemScript', full_name='electrumbridge.Utxo.redeemScript', index=4, + number=5, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='pkScript', full_name='electrumbridge.Utxo.pkScript', index=5, + number=6, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1999, + serialized_end=2177, +) + + +_OUTPOINT = _descriptor.Descriptor( + name='OutPoint', + full_name='electrumbridge.OutPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='hash', full_name='electrumbridge.OutPoint.hash', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='index', full_name='electrumbridge.OutPoint.index', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2179, + serialized_end=2218, +) + + +_FETCHROOTKEYREQUEST = _descriptor.Descriptor( + name='FetchRootKeyRequest', + full_name='electrumbridge.FetchRootKeyRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2220, + serialized_end=2241, +) + + +_FETCHROOTKEYRESPONSE = _descriptor.Descriptor( + name='FetchRootKeyResponse', + full_name='electrumbridge.FetchRootKeyResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='rootKey', full_name='electrumbridge.FetchRootKeyResponse.rootKey', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2243, + serialized_end=2282, +) + + +_CONFIRMEDBALANCEREQUEST = _descriptor.Descriptor( + name='ConfirmedBalanceRequest', + full_name='electrumbridge.ConfirmedBalanceRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='confirmations', full_name='electrumbridge.ConfirmedBalanceRequest.confirmations', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='witness', full_name='electrumbridge.ConfirmedBalanceRequest.witness', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2284, + serialized_end=2349, +) + + +_CONFIRMEDBALANCERESPONSE = _descriptor.Descriptor( + name='ConfirmedBalanceResponse', + full_name='electrumbridge.ConfirmedBalanceResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='amount', full_name='electrumbridge.ConfirmedBalanceResponse.amount', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2351, + serialized_end=2393, +) + + +_NEWADDRESSREQUEST = _descriptor.Descriptor( + name='NewAddressRequest', + full_name='electrumbridge.NewAddressRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='electrumbridge.NewAddressRequest.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='change', full_name='electrumbridge.NewAddressRequest.change', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2395, + serialized_end=2473, +) + + +_NEWADDRESSRESPONSE = _descriptor.Descriptor( + name='NewAddressResponse', + full_name='electrumbridge.NewAddressResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='address', full_name='electrumbridge.NewAddressResponse.address', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, json_name='address'), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2475, + serialized_end=2521, +) + +_SENDOUTPUTSREQUEST.fields_by_name['outputs'].message_type = _TXOUT +_LISTTRANSACTIONDETAILSRESPONSE.fields_by_name['details'].message_type = _TRANSACTIONDETAIL +_LOCKOUTPOINTREQUEST.fields_by_name['outpoint'].message_type = _OUTPOINT +_UNLOCKOUTPOINTREQUEST.fields_by_name['outpoint'].message_type = _OUTPOINT +_SIGNOUTPUTRAWREQUEST.fields_by_name['signDesc'].message_type = _SIGNDESCRIPTOR +_COMPUTEINPUTSCRIPTREQUEST.fields_by_name['signDesc'].message_type = _SIGNDESCRIPTOR +_SIGNDESCRIPTOR.fields_by_name['sigHashes'].message_type = _SIGHASHES +_SIGNDESCRIPTOR.fields_by_name['output'].message_type = _TXOUT +_FETCHINPUTINFOREQUEST.fields_by_name['outPoint'].message_type = _OUTPOINT +_FETCHINPUTINFORESPONSE.fields_by_name['txOut'].message_type = _TXOUT +_LISTUNSPENTWITNESSRESPONSE.fields_by_name['utxos'].message_type = _UTXO +_UTXO.fields_by_name['outPoint'].message_type = _OUTPOINT +_UTXO.fields_by_name['addressType'].enum_type = _ADDRESSTYPE +_NEWADDRESSREQUEST.fields_by_name['type'].enum_type = _ADDRESSTYPE +DESCRIPTOR.message_types_by_name['SignMessageRequest'] = _SIGNMESSAGEREQUEST +DESCRIPTOR.message_types_by_name['SignMessageResponse'] = _SIGNMESSAGERESPONSE +DESCRIPTOR.message_types_by_name['IsSyncedRequest'] = _ISSYNCEDREQUEST +DESCRIPTOR.message_types_by_name['IsSyncedResponse'] = _ISSYNCEDRESPONSE +DESCRIPTOR.message_types_by_name['SendOutputsRequest'] = _SENDOUTPUTSREQUEST +DESCRIPTOR.message_types_by_name['SendOutputsResponse'] = _SENDOUTPUTSRESPONSE +DESCRIPTOR.message_types_by_name['ListTransactionDetailsRequest'] = _LISTTRANSACTIONDETAILSREQUEST +DESCRIPTOR.message_types_by_name['ListTransactionDetailsResponse'] = _LISTTRANSACTIONDETAILSRESPONSE +DESCRIPTOR.message_types_by_name['TransactionDetail'] = _TRANSACTIONDETAIL +DESCRIPTOR.message_types_by_name['LockOutpointRequest'] = _LOCKOUTPOINTREQUEST +DESCRIPTOR.message_types_by_name['UnlockOutpointRequest'] = _UNLOCKOUTPOINTREQUEST +DESCRIPTOR.message_types_by_name['LockOutpointResponse'] = _LOCKOUTPOINTRESPONSE +DESCRIPTOR.message_types_by_name['UnlockOutpointResponse'] = _UNLOCKOUTPOINTRESPONSE +DESCRIPTOR.message_types_by_name['PublishTransactionRequest'] = _PUBLISHTRANSACTIONREQUEST +DESCRIPTOR.message_types_by_name['PublishTransactionResponse'] = _PUBLISHTRANSACTIONRESPONSE +DESCRIPTOR.message_types_by_name['SignOutputRawRequest'] = _SIGNOUTPUTRAWREQUEST +DESCRIPTOR.message_types_by_name['SignOutputRawResponse'] = _SIGNOUTPUTRAWRESPONSE +DESCRIPTOR.message_types_by_name['ComputeInputScriptRequest'] = _COMPUTEINPUTSCRIPTREQUEST +DESCRIPTOR.message_types_by_name['SignDescriptor'] = _SIGNDESCRIPTOR +DESCRIPTOR.message_types_by_name['SigHashes'] = _SIGHASHES +DESCRIPTOR.message_types_by_name['ComputeInputScriptResponse'] = _COMPUTEINPUTSCRIPTRESPONSE +DESCRIPTOR.message_types_by_name['FetchInputInfoRequest'] = _FETCHINPUTINFOREQUEST +DESCRIPTOR.message_types_by_name['FetchInputInfoResponse'] = _FETCHINPUTINFORESPONSE +DESCRIPTOR.message_types_by_name['TxOut'] = _TXOUT +DESCRIPTOR.message_types_by_name['NewRawKeyRequest'] = _NEWRAWKEYREQUEST +DESCRIPTOR.message_types_by_name['NewRawKeyResponse'] = _NEWRAWKEYRESPONSE +DESCRIPTOR.message_types_by_name['SetHdSeedRequest'] = _SETHDSEEDREQUEST +DESCRIPTOR.message_types_by_name['SetHdSeedResponse'] = _SETHDSEEDRESPONSE +DESCRIPTOR.message_types_by_name['ListUnspentWitnessRequest'] = _LISTUNSPENTWITNESSREQUEST +DESCRIPTOR.message_types_by_name['ListUnspentWitnessResponse'] = _LISTUNSPENTWITNESSRESPONSE +DESCRIPTOR.message_types_by_name['Utxo'] = _UTXO +DESCRIPTOR.message_types_by_name['OutPoint'] = _OUTPOINT +DESCRIPTOR.message_types_by_name['FetchRootKeyRequest'] = _FETCHROOTKEYREQUEST +DESCRIPTOR.message_types_by_name['FetchRootKeyResponse'] = _FETCHROOTKEYRESPONSE +DESCRIPTOR.message_types_by_name['ConfirmedBalanceRequest'] = _CONFIRMEDBALANCEREQUEST +DESCRIPTOR.message_types_by_name['ConfirmedBalanceResponse'] = _CONFIRMEDBALANCERESPONSE +DESCRIPTOR.message_types_by_name['NewAddressRequest'] = _NEWADDRESSREQUEST +DESCRIPTOR.message_types_by_name['NewAddressResponse'] = _NEWADDRESSRESPONSE +DESCRIPTOR.enum_types_by_name['AddressType'] = _ADDRESSTYPE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SignMessageRequest = _reflection.GeneratedProtocolMessageType('SignMessageRequest', (_message.Message,), dict( + DESCRIPTOR = _SIGNMESSAGEREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SignMessageRequest) + )) +_sym_db.RegisterMessage(SignMessageRequest) + +SignMessageResponse = _reflection.GeneratedProtocolMessageType('SignMessageResponse', (_message.Message,), dict( + DESCRIPTOR = _SIGNMESSAGERESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SignMessageResponse) + )) +_sym_db.RegisterMessage(SignMessageResponse) + +IsSyncedRequest = _reflection.GeneratedProtocolMessageType('IsSyncedRequest', (_message.Message,), dict( + DESCRIPTOR = _ISSYNCEDREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.IsSyncedRequest) + )) +_sym_db.RegisterMessage(IsSyncedRequest) + +IsSyncedResponse = _reflection.GeneratedProtocolMessageType('IsSyncedResponse', (_message.Message,), dict( + DESCRIPTOR = _ISSYNCEDRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.IsSyncedResponse) + )) +_sym_db.RegisterMessage(IsSyncedResponse) + +SendOutputsRequest = _reflection.GeneratedProtocolMessageType('SendOutputsRequest', (_message.Message,), dict( + DESCRIPTOR = _SENDOUTPUTSREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SendOutputsRequest) + )) +_sym_db.RegisterMessage(SendOutputsRequest) + +SendOutputsResponse = _reflection.GeneratedProtocolMessageType('SendOutputsResponse', (_message.Message,), dict( + DESCRIPTOR = _SENDOUTPUTSRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SendOutputsResponse) + )) +_sym_db.RegisterMessage(SendOutputsResponse) + +ListTransactionDetailsRequest = _reflection.GeneratedProtocolMessageType('ListTransactionDetailsRequest', (_message.Message,), dict( + DESCRIPTOR = _LISTTRANSACTIONDETAILSREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ListTransactionDetailsRequest) + )) +_sym_db.RegisterMessage(ListTransactionDetailsRequest) + +ListTransactionDetailsResponse = _reflection.GeneratedProtocolMessageType('ListTransactionDetailsResponse', (_message.Message,), dict( + DESCRIPTOR = _LISTTRANSACTIONDETAILSRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ListTransactionDetailsResponse) + )) +_sym_db.RegisterMessage(ListTransactionDetailsResponse) + +TransactionDetail = _reflection.GeneratedProtocolMessageType('TransactionDetail', (_message.Message,), dict( + DESCRIPTOR = _TRANSACTIONDETAIL, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.TransactionDetail) + )) +_sym_db.RegisterMessage(TransactionDetail) + +LockOutpointRequest = _reflection.GeneratedProtocolMessageType('LockOutpointRequest', (_message.Message,), dict( + DESCRIPTOR = _LOCKOUTPOINTREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.LockOutpointRequest) + )) +_sym_db.RegisterMessage(LockOutpointRequest) + +UnlockOutpointRequest = _reflection.GeneratedProtocolMessageType('UnlockOutpointRequest', (_message.Message,), dict( + DESCRIPTOR = _UNLOCKOUTPOINTREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.UnlockOutpointRequest) + )) +_sym_db.RegisterMessage(UnlockOutpointRequest) + +LockOutpointResponse = _reflection.GeneratedProtocolMessageType('LockOutpointResponse', (_message.Message,), dict( + DESCRIPTOR = _LOCKOUTPOINTRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.LockOutpointResponse) + )) +_sym_db.RegisterMessage(LockOutpointResponse) + +UnlockOutpointResponse = _reflection.GeneratedProtocolMessageType('UnlockOutpointResponse', (_message.Message,), dict( + DESCRIPTOR = _UNLOCKOUTPOINTRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.UnlockOutpointResponse) + )) +_sym_db.RegisterMessage(UnlockOutpointResponse) + +PublishTransactionRequest = _reflection.GeneratedProtocolMessageType('PublishTransactionRequest', (_message.Message,), dict( + DESCRIPTOR = _PUBLISHTRANSACTIONREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.PublishTransactionRequest) + )) +_sym_db.RegisterMessage(PublishTransactionRequest) + +PublishTransactionResponse = _reflection.GeneratedProtocolMessageType('PublishTransactionResponse', (_message.Message,), dict( + DESCRIPTOR = _PUBLISHTRANSACTIONRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.PublishTransactionResponse) + )) +_sym_db.RegisterMessage(PublishTransactionResponse) + +SignOutputRawRequest = _reflection.GeneratedProtocolMessageType('SignOutputRawRequest', (_message.Message,), dict( + DESCRIPTOR = _SIGNOUTPUTRAWREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SignOutputRawRequest) + )) +_sym_db.RegisterMessage(SignOutputRawRequest) + +SignOutputRawResponse = _reflection.GeneratedProtocolMessageType('SignOutputRawResponse', (_message.Message,), dict( + DESCRIPTOR = _SIGNOUTPUTRAWRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SignOutputRawResponse) + )) +_sym_db.RegisterMessage(SignOutputRawResponse) + +ComputeInputScriptRequest = _reflection.GeneratedProtocolMessageType('ComputeInputScriptRequest', (_message.Message,), dict( + DESCRIPTOR = _COMPUTEINPUTSCRIPTREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ComputeInputScriptRequest) + )) +_sym_db.RegisterMessage(ComputeInputScriptRequest) + +SignDescriptor = _reflection.GeneratedProtocolMessageType('SignDescriptor', (_message.Message,), dict( + DESCRIPTOR = _SIGNDESCRIPTOR, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SignDescriptor) + )) +_sym_db.RegisterMessage(SignDescriptor) + +SigHashes = _reflection.GeneratedProtocolMessageType('SigHashes', (_message.Message,), dict( + DESCRIPTOR = _SIGHASHES, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SigHashes) + )) +_sym_db.RegisterMessage(SigHashes) + +ComputeInputScriptResponse = _reflection.GeneratedProtocolMessageType('ComputeInputScriptResponse', (_message.Message,), dict( + DESCRIPTOR = _COMPUTEINPUTSCRIPTRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ComputeInputScriptResponse) + )) +_sym_db.RegisterMessage(ComputeInputScriptResponse) + +FetchInputInfoRequest = _reflection.GeneratedProtocolMessageType('FetchInputInfoRequest', (_message.Message,), dict( + DESCRIPTOR = _FETCHINPUTINFOREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.FetchInputInfoRequest) + )) +_sym_db.RegisterMessage(FetchInputInfoRequest) + +FetchInputInfoResponse = _reflection.GeneratedProtocolMessageType('FetchInputInfoResponse', (_message.Message,), dict( + DESCRIPTOR = _FETCHINPUTINFORESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.FetchInputInfoResponse) + )) +_sym_db.RegisterMessage(FetchInputInfoResponse) + +TxOut = _reflection.GeneratedProtocolMessageType('TxOut', (_message.Message,), dict( + DESCRIPTOR = _TXOUT, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.TxOut) + )) +_sym_db.RegisterMessage(TxOut) + +NewRawKeyRequest = _reflection.GeneratedProtocolMessageType('NewRawKeyRequest', (_message.Message,), dict( + DESCRIPTOR = _NEWRAWKEYREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.NewRawKeyRequest) + )) +_sym_db.RegisterMessage(NewRawKeyRequest) + +NewRawKeyResponse = _reflection.GeneratedProtocolMessageType('NewRawKeyResponse', (_message.Message,), dict( + DESCRIPTOR = _NEWRAWKEYRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.NewRawKeyResponse) + )) +_sym_db.RegisterMessage(NewRawKeyResponse) + +SetHdSeedRequest = _reflection.GeneratedProtocolMessageType('SetHdSeedRequest', (_message.Message,), dict( + DESCRIPTOR = _SETHDSEEDREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SetHdSeedRequest) + )) +_sym_db.RegisterMessage(SetHdSeedRequest) + +SetHdSeedResponse = _reflection.GeneratedProtocolMessageType('SetHdSeedResponse', (_message.Message,), dict( + DESCRIPTOR = _SETHDSEEDRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.SetHdSeedResponse) + )) +_sym_db.RegisterMessage(SetHdSeedResponse) + +ListUnspentWitnessRequest = _reflection.GeneratedProtocolMessageType('ListUnspentWitnessRequest', (_message.Message,), dict( + DESCRIPTOR = _LISTUNSPENTWITNESSREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ListUnspentWitnessRequest) + )) +_sym_db.RegisterMessage(ListUnspentWitnessRequest) + +ListUnspentWitnessResponse = _reflection.GeneratedProtocolMessageType('ListUnspentWitnessResponse', (_message.Message,), dict( + DESCRIPTOR = _LISTUNSPENTWITNESSRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ListUnspentWitnessResponse) + )) +_sym_db.RegisterMessage(ListUnspentWitnessResponse) + +Utxo = _reflection.GeneratedProtocolMessageType('Utxo', (_message.Message,), dict( + DESCRIPTOR = _UTXO, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.Utxo) + )) +_sym_db.RegisterMessage(Utxo) + +OutPoint = _reflection.GeneratedProtocolMessageType('OutPoint', (_message.Message,), dict( + DESCRIPTOR = _OUTPOINT, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.OutPoint) + )) +_sym_db.RegisterMessage(OutPoint) + +FetchRootKeyRequest = _reflection.GeneratedProtocolMessageType('FetchRootKeyRequest', (_message.Message,), dict( + DESCRIPTOR = _FETCHROOTKEYREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.FetchRootKeyRequest) + )) +_sym_db.RegisterMessage(FetchRootKeyRequest) + +FetchRootKeyResponse = _reflection.GeneratedProtocolMessageType('FetchRootKeyResponse', (_message.Message,), dict( + DESCRIPTOR = _FETCHROOTKEYRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.FetchRootKeyResponse) + )) +_sym_db.RegisterMessage(FetchRootKeyResponse) + +ConfirmedBalanceRequest = _reflection.GeneratedProtocolMessageType('ConfirmedBalanceRequest', (_message.Message,), dict( + DESCRIPTOR = _CONFIRMEDBALANCEREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ConfirmedBalanceRequest) + )) +_sym_db.RegisterMessage(ConfirmedBalanceRequest) + +ConfirmedBalanceResponse = _reflection.GeneratedProtocolMessageType('ConfirmedBalanceResponse', (_message.Message,), dict( + DESCRIPTOR = _CONFIRMEDBALANCERESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.ConfirmedBalanceResponse) + )) +_sym_db.RegisterMessage(ConfirmedBalanceResponse) + +NewAddressRequest = _reflection.GeneratedProtocolMessageType('NewAddressRequest', (_message.Message,), dict( + DESCRIPTOR = _NEWADDRESSREQUEST, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.NewAddressRequest) + )) +_sym_db.RegisterMessage(NewAddressRequest) + +NewAddressResponse = _reflection.GeneratedProtocolMessageType('NewAddressResponse', (_message.Message,), dict( + DESCRIPTOR = _NEWADDRESSRESPONSE, + __module__ = 'rpc_pb2' + # @@protoc_insertion_point(class_scope:electrumbridge.NewAddressResponse) + )) +_sym_db.RegisterMessage(NewAddressResponse) + + + +_ELECTRUMBRIDGE = _descriptor.ServiceDescriptor( + name='ElectrumBridge', + full_name='electrumbridge.ElectrumBridge', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=2605, + serialized_end=4590, + methods=[ + _descriptor.MethodDescriptor( + name='SetHdSeed', + full_name='electrumbridge.ElectrumBridge.SetHdSeed', + index=0, + containing_service=None, + input_type=_SETHDSEEDREQUEST, + output_type=_SETHDSEEDRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\017\022\r/v1/sethdseed')), + ), + _descriptor.MethodDescriptor( + name='NewAddress', + full_name='electrumbridge.ElectrumBridge.NewAddress', + index=1, + containing_service=None, + input_type=_NEWADDRESSREQUEST, + output_type=_NEWADDRESSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\020\022\016/v1/newaddress')), + ), + _descriptor.MethodDescriptor( + name='ConfirmedBalance', + full_name='electrumbridge.ElectrumBridge.ConfirmedBalance', + index=2, + containing_service=None, + input_type=_CONFIRMEDBALANCEREQUEST, + output_type=_CONFIRMEDBALANCERESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\026\022\024/v1/confirmedbalance')), + ), + _descriptor.MethodDescriptor( + name='FetchRootKey', + full_name='electrumbridge.ElectrumBridge.FetchRootKey', + index=3, + containing_service=None, + input_type=_FETCHROOTKEYREQUEST, + output_type=_FETCHROOTKEYRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\022\022\020/v1/fetchrootkey')), + ), + _descriptor.MethodDescriptor( + name='ListUnspentWitness', + full_name='electrumbridge.ElectrumBridge.ListUnspentWitness', + index=4, + containing_service=None, + input_type=_LISTUNSPENTWITNESSREQUEST, + output_type=_LISTUNSPENTWITNESSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\030\022\026/v1/listunspentwitness')), + ), + _descriptor.MethodDescriptor( + name='NewRawKey', + full_name='electrumbridge.ElectrumBridge.NewRawKey', + index=5, + containing_service=None, + input_type=_NEWRAWKEYREQUEST, + output_type=_NEWRAWKEYRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\017\022\r/v1/newrawkey')), + ), + _descriptor.MethodDescriptor( + name='FetchInputInfo', + full_name='electrumbridge.ElectrumBridge.FetchInputInfo', + index=6, + containing_service=None, + input_type=_FETCHINPUTINFOREQUEST, + output_type=_FETCHINPUTINFORESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\024\022\022/v1/fetchinputinfo')), + ), + _descriptor.MethodDescriptor( + name='ComputeInputScript', + full_name='electrumbridge.ElectrumBridge.ComputeInputScript', + index=7, + containing_service=None, + input_type=_COMPUTEINPUTSCRIPTREQUEST, + output_type=_COMPUTEINPUTSCRIPTRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\030\022\026/v1/computeinputscript')), + ), + _descriptor.MethodDescriptor( + name='SignOutputRaw', + full_name='electrumbridge.ElectrumBridge.SignOutputRaw', + index=8, + containing_service=None, + input_type=_SIGNOUTPUTRAWREQUEST, + output_type=_SIGNOUTPUTRAWRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\023\022\021/v1/signoutputraw')), + ), + _descriptor.MethodDescriptor( + name='PublishTransaction', + full_name='electrumbridge.ElectrumBridge.PublishTransaction', + index=9, + containing_service=None, + input_type=_PUBLISHTRANSACTIONREQUEST, + output_type=_PUBLISHTRANSACTIONRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\030\022\026/v1/publishtransaction')), + ), + _descriptor.MethodDescriptor( + name='LockOutpoint', + full_name='electrumbridge.ElectrumBridge.LockOutpoint', + index=10, + containing_service=None, + input_type=_LOCKOUTPOINTREQUEST, + output_type=_LOCKOUTPOINTRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\022\022\020/v1/lockoutpoint')), + ), + _descriptor.MethodDescriptor( + name='UnlockOutpoint', + full_name='electrumbridge.ElectrumBridge.UnlockOutpoint', + index=11, + containing_service=None, + input_type=_UNLOCKOUTPOINTREQUEST, + output_type=_UNLOCKOUTPOINTRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\024\022\022/v1/unlockoutpoint')), + ), + _descriptor.MethodDescriptor( + name='ListTransactionDetails', + full_name='electrumbridge.ElectrumBridge.ListTransactionDetails', + index=12, + containing_service=None, + input_type=_LISTTRANSACTIONDETAILSREQUEST, + output_type=_LISTTRANSACTIONDETAILSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\034\022\032/v1/listtransactiondetails')), + ), + _descriptor.MethodDescriptor( + name='SendOutputs', + full_name='electrumbridge.ElectrumBridge.SendOutputs', + index=13, + containing_service=None, + input_type=_SENDOUTPUTSREQUEST, + output_type=_SENDOUTPUTSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\021\022\017/v1/sendoutputs')), + ), + _descriptor.MethodDescriptor( + name='IsSynced', + full_name='electrumbridge.ElectrumBridge.IsSynced', + index=14, + containing_service=None, + input_type=_ISSYNCEDREQUEST, + output_type=_ISSYNCEDRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\016\022\014/v1/issynced')), + ), + _descriptor.MethodDescriptor( + name='SignMessage', + full_name='electrumbridge.ElectrumBridge.SignMessage', + index=15, + containing_service=None, + input_type=_SIGNMESSAGEREQUEST, + output_type=_SIGNMESSAGERESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\021\022\017/v1/signmessage')), + ), +]) +_sym_db.RegisterServiceDescriptor(_ELECTRUMBRIDGE) + +DESCRIPTOR.services_by_name['ElectrumBridge'] = _ELECTRUMBRIDGE + +try: + # THESE ELEMENTS WILL BE DEPRECATED. + # Please use the generated *_pb2_grpc.py files instead. + import grpc + from grpc.beta import implementations as beta_implementations + from grpc.beta import interfaces as beta_interfaces + from grpc.framework.common import cardinality + from grpc.framework.interfaces.face import utilities as face_utilities + + + class ElectrumBridgeStub(object): + # missing associated documentation comment in .proto file + pass + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SetHdSeed = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SetHdSeed', + request_serializer=SetHdSeedRequest.SerializeToString, + response_deserializer=SetHdSeedResponse.FromString, + ) + self.NewAddress = channel.unary_unary( + '/electrumbridge.ElectrumBridge/NewAddress', + request_serializer=NewAddressRequest.SerializeToString, + response_deserializer=NewAddressResponse.FromString, + ) + self.ConfirmedBalance = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ConfirmedBalance', + request_serializer=ConfirmedBalanceRequest.SerializeToString, + response_deserializer=ConfirmedBalanceResponse.FromString, + ) + self.FetchRootKey = channel.unary_unary( + '/electrumbridge.ElectrumBridge/FetchRootKey', + request_serializer=FetchRootKeyRequest.SerializeToString, + response_deserializer=FetchRootKeyResponse.FromString, + ) + self.ListUnspentWitness = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ListUnspentWitness', + request_serializer=ListUnspentWitnessRequest.SerializeToString, + response_deserializer=ListUnspentWitnessResponse.FromString, + ) + self.NewRawKey = channel.unary_unary( + '/electrumbridge.ElectrumBridge/NewRawKey', + request_serializer=NewRawKeyRequest.SerializeToString, + response_deserializer=NewRawKeyResponse.FromString, + ) + self.FetchInputInfo = channel.unary_unary( + '/electrumbridge.ElectrumBridge/FetchInputInfo', + request_serializer=FetchInputInfoRequest.SerializeToString, + response_deserializer=FetchInputInfoResponse.FromString, + ) + self.ComputeInputScript = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ComputeInputScript', + request_serializer=ComputeInputScriptRequest.SerializeToString, + response_deserializer=ComputeInputScriptResponse.FromString, + ) + self.SignOutputRaw = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SignOutputRaw', + request_serializer=SignOutputRawRequest.SerializeToString, + response_deserializer=SignOutputRawResponse.FromString, + ) + self.PublishTransaction = channel.unary_unary( + '/electrumbridge.ElectrumBridge/PublishTransaction', + request_serializer=PublishTransactionRequest.SerializeToString, + response_deserializer=PublishTransactionResponse.FromString, + ) + self.LockOutpoint = channel.unary_unary( + '/electrumbridge.ElectrumBridge/LockOutpoint', + request_serializer=LockOutpointRequest.SerializeToString, + response_deserializer=LockOutpointResponse.FromString, + ) + self.UnlockOutpoint = channel.unary_unary( + '/electrumbridge.ElectrumBridge/UnlockOutpoint', + request_serializer=UnlockOutpointRequest.SerializeToString, + response_deserializer=UnlockOutpointResponse.FromString, + ) + self.ListTransactionDetails = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ListTransactionDetails', + request_serializer=ListTransactionDetailsRequest.SerializeToString, + response_deserializer=ListTransactionDetailsResponse.FromString, + ) + self.SendOutputs = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SendOutputs', + request_serializer=SendOutputsRequest.SerializeToString, + response_deserializer=SendOutputsResponse.FromString, + ) + self.IsSynced = channel.unary_unary( + '/electrumbridge.ElectrumBridge/IsSynced', + request_serializer=IsSyncedRequest.SerializeToString, + response_deserializer=IsSyncedResponse.FromString, + ) + self.SignMessage = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SignMessage', + request_serializer=SignMessageRequest.SerializeToString, + response_deserializer=SignMessageResponse.FromString, + ) + + + class ElectrumBridgeServicer(object): + # missing associated documentation comment in .proto file + pass + + def SetHdSeed(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def NewAddress(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfirmedBalance(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FetchRootKey(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListUnspentWitness(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def NewRawKey(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FetchInputInfo(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ComputeInputScript(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SignOutputRaw(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PublishTransaction(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LockOutpoint(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnlockOutpoint(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListTransactionDetails(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendOutputs(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def IsSynced(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SignMessage(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + + def add_ElectrumBridgeServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SetHdSeed': grpc.unary_unary_rpc_method_handler( + servicer.SetHdSeed, + request_deserializer=SetHdSeedRequest.FromString, + response_serializer=SetHdSeedResponse.SerializeToString, + ), + 'NewAddress': grpc.unary_unary_rpc_method_handler( + servicer.NewAddress, + request_deserializer=NewAddressRequest.FromString, + response_serializer=NewAddressResponse.SerializeToString, + ), + 'ConfirmedBalance': grpc.unary_unary_rpc_method_handler( + servicer.ConfirmedBalance, + request_deserializer=ConfirmedBalanceRequest.FromString, + response_serializer=ConfirmedBalanceResponse.SerializeToString, + ), + 'FetchRootKey': grpc.unary_unary_rpc_method_handler( + servicer.FetchRootKey, + request_deserializer=FetchRootKeyRequest.FromString, + response_serializer=FetchRootKeyResponse.SerializeToString, + ), + 'ListUnspentWitness': grpc.unary_unary_rpc_method_handler( + servicer.ListUnspentWitness, + request_deserializer=ListUnspentWitnessRequest.FromString, + response_serializer=ListUnspentWitnessResponse.SerializeToString, + ), + 'NewRawKey': grpc.unary_unary_rpc_method_handler( + servicer.NewRawKey, + request_deserializer=NewRawKeyRequest.FromString, + response_serializer=NewRawKeyResponse.SerializeToString, + ), + 'FetchInputInfo': grpc.unary_unary_rpc_method_handler( + servicer.FetchInputInfo, + request_deserializer=FetchInputInfoRequest.FromString, + response_serializer=FetchInputInfoResponse.SerializeToString, + ), + 'ComputeInputScript': grpc.unary_unary_rpc_method_handler( + servicer.ComputeInputScript, + request_deserializer=ComputeInputScriptRequest.FromString, + response_serializer=ComputeInputScriptResponse.SerializeToString, + ), + 'SignOutputRaw': grpc.unary_unary_rpc_method_handler( + servicer.SignOutputRaw, + request_deserializer=SignOutputRawRequest.FromString, + response_serializer=SignOutputRawResponse.SerializeToString, + ), + 'PublishTransaction': grpc.unary_unary_rpc_method_handler( + servicer.PublishTransaction, + request_deserializer=PublishTransactionRequest.FromString, + response_serializer=PublishTransactionResponse.SerializeToString, + ), + 'LockOutpoint': grpc.unary_unary_rpc_method_handler( + servicer.LockOutpoint, + request_deserializer=LockOutpointRequest.FromString, + response_serializer=LockOutpointResponse.SerializeToString, + ), + 'UnlockOutpoint': grpc.unary_unary_rpc_method_handler( + servicer.UnlockOutpoint, + request_deserializer=UnlockOutpointRequest.FromString, + response_serializer=UnlockOutpointResponse.SerializeToString, + ), + 'ListTransactionDetails': grpc.unary_unary_rpc_method_handler( + servicer.ListTransactionDetails, + request_deserializer=ListTransactionDetailsRequest.FromString, + response_serializer=ListTransactionDetailsResponse.SerializeToString, + ), + 'SendOutputs': grpc.unary_unary_rpc_method_handler( + servicer.SendOutputs, + request_deserializer=SendOutputsRequest.FromString, + response_serializer=SendOutputsResponse.SerializeToString, + ), + 'IsSynced': grpc.unary_unary_rpc_method_handler( + servicer.IsSynced, + request_deserializer=IsSyncedRequest.FromString, + response_serializer=IsSyncedResponse.SerializeToString, + ), + 'SignMessage': grpc.unary_unary_rpc_method_handler( + servicer.SignMessage, + request_deserializer=SignMessageRequest.FromString, + response_serializer=SignMessageResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'electrumbridge.ElectrumBridge', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + class BetaElectrumBridgeServicer(object): + """The Beta API is deprecated for 0.15.0 and later. + + It is recommended to use the GA API (classes and functions in this + file not marked beta) for all further purposes. This class was generated + only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0.""" + # missing associated documentation comment in .proto file + pass + def SetHdSeed(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def NewAddress(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def ConfirmedBalance(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def FetchRootKey(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def ListUnspentWitness(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def NewRawKey(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def FetchInputInfo(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def ComputeInputScript(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def SignOutputRaw(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def PublishTransaction(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def LockOutpoint(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def UnlockOutpoint(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def ListTransactionDetails(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def SendOutputs(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def IsSynced(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def SignMessage(self, request, context): + # missing associated documentation comment in .proto file + pass + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + + + class BetaElectrumBridgeStub(object): + """The Beta API is deprecated for 0.15.0 and later. + + It is recommended to use the GA API (classes and functions in this + file not marked beta) for all further purposes. This class was generated + only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0.""" + # missing associated documentation comment in .proto file + pass + def SetHdSeed(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + SetHdSeed.future = None + def NewAddress(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + NewAddress.future = None + def ConfirmedBalance(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + ConfirmedBalance.future = None + def FetchRootKey(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + FetchRootKey.future = None + def ListUnspentWitness(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + ListUnspentWitness.future = None + def NewRawKey(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + NewRawKey.future = None + def FetchInputInfo(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + FetchInputInfo.future = None + def ComputeInputScript(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + ComputeInputScript.future = None + def SignOutputRaw(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + SignOutputRaw.future = None + def PublishTransaction(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + PublishTransaction.future = None + def LockOutpoint(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + LockOutpoint.future = None + def UnlockOutpoint(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + UnlockOutpoint.future = None + def ListTransactionDetails(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + ListTransactionDetails.future = None + def SendOutputs(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + SendOutputs.future = None + def IsSynced(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + IsSynced.future = None + def SignMessage(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + # missing associated documentation comment in .proto file + pass + raise NotImplementedError() + SignMessage.future = None + + + def beta_create_ElectrumBridge_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None): + """The Beta API is deprecated for 0.15.0 and later. + + It is recommended to use the GA API (classes and functions in this + file not marked beta) for all further purposes. This function was + generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0""" + request_deserializers = { + ('electrumbridge.ElectrumBridge', 'ComputeInputScript'): ComputeInputScriptRequest.FromString, + ('electrumbridge.ElectrumBridge', 'ConfirmedBalance'): ConfirmedBalanceRequest.FromString, + ('electrumbridge.ElectrumBridge', 'FetchInputInfo'): FetchInputInfoRequest.FromString, + ('electrumbridge.ElectrumBridge', 'FetchRootKey'): FetchRootKeyRequest.FromString, + ('electrumbridge.ElectrumBridge', 'IsSynced'): IsSyncedRequest.FromString, + ('electrumbridge.ElectrumBridge', 'ListTransactionDetails'): ListTransactionDetailsRequest.FromString, + ('electrumbridge.ElectrumBridge', 'ListUnspentWitness'): ListUnspentWitnessRequest.FromString, + ('electrumbridge.ElectrumBridge', 'LockOutpoint'): LockOutpointRequest.FromString, + ('electrumbridge.ElectrumBridge', 'NewAddress'): NewAddressRequest.FromString, + ('electrumbridge.ElectrumBridge', 'NewRawKey'): NewRawKeyRequest.FromString, + ('electrumbridge.ElectrumBridge', 'PublishTransaction'): PublishTransactionRequest.FromString, + ('electrumbridge.ElectrumBridge', 'SendOutputs'): SendOutputsRequest.FromString, + ('electrumbridge.ElectrumBridge', 'SetHdSeed'): SetHdSeedRequest.FromString, + ('electrumbridge.ElectrumBridge', 'SignMessage'): SignMessageRequest.FromString, + ('electrumbridge.ElectrumBridge', 'SignOutputRaw'): SignOutputRawRequest.FromString, + ('electrumbridge.ElectrumBridge', 'UnlockOutpoint'): UnlockOutpointRequest.FromString, + } + response_serializers = { + ('electrumbridge.ElectrumBridge', 'ComputeInputScript'): ComputeInputScriptResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'ConfirmedBalance'): ConfirmedBalanceResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'FetchInputInfo'): FetchInputInfoResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'FetchRootKey'): FetchRootKeyResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'IsSynced'): IsSyncedResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'ListTransactionDetails'): ListTransactionDetailsResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'ListUnspentWitness'): ListUnspentWitnessResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'LockOutpoint'): LockOutpointResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'NewAddress'): NewAddressResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'NewRawKey'): NewRawKeyResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'PublishTransaction'): PublishTransactionResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SendOutputs'): SendOutputsResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SetHdSeed'): SetHdSeedResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SignMessage'): SignMessageResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SignOutputRaw'): SignOutputRawResponse.SerializeToString, + ('electrumbridge.ElectrumBridge', 'UnlockOutpoint'): UnlockOutpointResponse.SerializeToString, + } + method_implementations = { + ('electrumbridge.ElectrumBridge', 'ComputeInputScript'): face_utilities.unary_unary_inline(servicer.ComputeInputScript), + ('electrumbridge.ElectrumBridge', 'ConfirmedBalance'): face_utilities.unary_unary_inline(servicer.ConfirmedBalance), + ('electrumbridge.ElectrumBridge', 'FetchInputInfo'): face_utilities.unary_unary_inline(servicer.FetchInputInfo), + ('electrumbridge.ElectrumBridge', 'FetchRootKey'): face_utilities.unary_unary_inline(servicer.FetchRootKey), + ('electrumbridge.ElectrumBridge', 'IsSynced'): face_utilities.unary_unary_inline(servicer.IsSynced), + ('electrumbridge.ElectrumBridge', 'ListTransactionDetails'): face_utilities.unary_unary_inline(servicer.ListTransactionDetails), + ('electrumbridge.ElectrumBridge', 'ListUnspentWitness'): face_utilities.unary_unary_inline(servicer.ListUnspentWitness), + ('electrumbridge.ElectrumBridge', 'LockOutpoint'): face_utilities.unary_unary_inline(servicer.LockOutpoint), + ('electrumbridge.ElectrumBridge', 'NewAddress'): face_utilities.unary_unary_inline(servicer.NewAddress), + ('electrumbridge.ElectrumBridge', 'NewRawKey'): face_utilities.unary_unary_inline(servicer.NewRawKey), + ('electrumbridge.ElectrumBridge', 'PublishTransaction'): face_utilities.unary_unary_inline(servicer.PublishTransaction), + ('electrumbridge.ElectrumBridge', 'SendOutputs'): face_utilities.unary_unary_inline(servicer.SendOutputs), + ('electrumbridge.ElectrumBridge', 'SetHdSeed'): face_utilities.unary_unary_inline(servicer.SetHdSeed), + ('electrumbridge.ElectrumBridge', 'SignMessage'): face_utilities.unary_unary_inline(servicer.SignMessage), + ('electrumbridge.ElectrumBridge', 'SignOutputRaw'): face_utilities.unary_unary_inline(servicer.SignOutputRaw), + ('electrumbridge.ElectrumBridge', 'UnlockOutpoint'): face_utilities.unary_unary_inline(servicer.UnlockOutpoint), + } + server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout) + return beta_implementations.server(method_implementations, options=server_options) + + + def beta_create_ElectrumBridge_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None): + """The Beta API is deprecated for 0.15.0 and later. + + It is recommended to use the GA API (classes and functions in this + file not marked beta) for all further purposes. This function was + generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0""" + request_serializers = { + ('electrumbridge.ElectrumBridge', 'ComputeInputScript'): ComputeInputScriptRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'ConfirmedBalance'): ConfirmedBalanceRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'FetchInputInfo'): FetchInputInfoRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'FetchRootKey'): FetchRootKeyRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'IsSynced'): IsSyncedRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'ListTransactionDetails'): ListTransactionDetailsRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'ListUnspentWitness'): ListUnspentWitnessRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'LockOutpoint'): LockOutpointRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'NewAddress'): NewAddressRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'NewRawKey'): NewRawKeyRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'PublishTransaction'): PublishTransactionRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SendOutputs'): SendOutputsRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SetHdSeed'): SetHdSeedRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SignMessage'): SignMessageRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'SignOutputRaw'): SignOutputRawRequest.SerializeToString, + ('electrumbridge.ElectrumBridge', 'UnlockOutpoint'): UnlockOutpointRequest.SerializeToString, + } + response_deserializers = { + ('electrumbridge.ElectrumBridge', 'ComputeInputScript'): ComputeInputScriptResponse.FromString, + ('electrumbridge.ElectrumBridge', 'ConfirmedBalance'): ConfirmedBalanceResponse.FromString, + ('electrumbridge.ElectrumBridge', 'FetchInputInfo'): FetchInputInfoResponse.FromString, + ('electrumbridge.ElectrumBridge', 'FetchRootKey'): FetchRootKeyResponse.FromString, + ('electrumbridge.ElectrumBridge', 'IsSynced'): IsSyncedResponse.FromString, + ('electrumbridge.ElectrumBridge', 'ListTransactionDetails'): ListTransactionDetailsResponse.FromString, + ('electrumbridge.ElectrumBridge', 'ListUnspentWitness'): ListUnspentWitnessResponse.FromString, + ('electrumbridge.ElectrumBridge', 'LockOutpoint'): LockOutpointResponse.FromString, + ('electrumbridge.ElectrumBridge', 'NewAddress'): NewAddressResponse.FromString, + ('electrumbridge.ElectrumBridge', 'NewRawKey'): NewRawKeyResponse.FromString, + ('electrumbridge.ElectrumBridge', 'PublishTransaction'): PublishTransactionResponse.FromString, + ('electrumbridge.ElectrumBridge', 'SendOutputs'): SendOutputsResponse.FromString, + ('electrumbridge.ElectrumBridge', 'SetHdSeed'): SetHdSeedResponse.FromString, + ('electrumbridge.ElectrumBridge', 'SignMessage'): SignMessageResponse.FromString, + ('electrumbridge.ElectrumBridge', 'SignOutputRaw'): SignOutputRawResponse.FromString, + ('electrumbridge.ElectrumBridge', 'UnlockOutpoint'): UnlockOutpointResponse.FromString, + } + cardinalities = { + 'ComputeInputScript': cardinality.Cardinality.UNARY_UNARY, + 'ConfirmedBalance': cardinality.Cardinality.UNARY_UNARY, + 'FetchInputInfo': cardinality.Cardinality.UNARY_UNARY, + 'FetchRootKey': cardinality.Cardinality.UNARY_UNARY, + 'IsSynced': cardinality.Cardinality.UNARY_UNARY, + 'ListTransactionDetails': cardinality.Cardinality.UNARY_UNARY, + 'ListUnspentWitness': cardinality.Cardinality.UNARY_UNARY, + 'LockOutpoint': cardinality.Cardinality.UNARY_UNARY, + 'NewAddress': cardinality.Cardinality.UNARY_UNARY, + 'NewRawKey': cardinality.Cardinality.UNARY_UNARY, + 'PublishTransaction': cardinality.Cardinality.UNARY_UNARY, + 'SendOutputs': cardinality.Cardinality.UNARY_UNARY, + 'SetHdSeed': cardinality.Cardinality.UNARY_UNARY, + 'SignMessage': cardinality.Cardinality.UNARY_UNARY, + 'SignOutputRaw': cardinality.Cardinality.UNARY_UNARY, + 'UnlockOutpoint': cardinality.Cardinality.UNARY_UNARY, + } + stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size) + return beta_implementations.dynamic_stub(channel, 'electrumbridge.ElectrumBridge', cardinalities, options=stub_options) +except ImportError: + pass +# @@protoc_insertion_point(module_scope) diff --git a/lib/ln/rpc_pb2_grpc.py b/lib/ln/rpc_pb2_grpc.py new file mode 100644 index 00000000..7d6b82b5 --- /dev/null +++ b/lib/ln/rpc_pb2_grpc.py @@ -0,0 +1,301 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +import rpc_pb2 as rpc__pb2 + + +class ElectrumBridgeStub(object): + # missing associated documentation comment in .proto file + pass + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SetHdSeed = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SetHdSeed', + request_serializer=rpc__pb2.SetHdSeedRequest.SerializeToString, + response_deserializer=rpc__pb2.SetHdSeedResponse.FromString, + ) + self.NewAddress = channel.unary_unary( + '/electrumbridge.ElectrumBridge/NewAddress', + request_serializer=rpc__pb2.NewAddressRequest.SerializeToString, + response_deserializer=rpc__pb2.NewAddressResponse.FromString, + ) + self.ConfirmedBalance = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ConfirmedBalance', + request_serializer=rpc__pb2.ConfirmedBalanceRequest.SerializeToString, + response_deserializer=rpc__pb2.ConfirmedBalanceResponse.FromString, + ) + self.FetchRootKey = channel.unary_unary( + '/electrumbridge.ElectrumBridge/FetchRootKey', + request_serializer=rpc__pb2.FetchRootKeyRequest.SerializeToString, + response_deserializer=rpc__pb2.FetchRootKeyResponse.FromString, + ) + self.ListUnspentWitness = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ListUnspentWitness', + request_serializer=rpc__pb2.ListUnspentWitnessRequest.SerializeToString, + response_deserializer=rpc__pb2.ListUnspentWitnessResponse.FromString, + ) + self.NewRawKey = channel.unary_unary( + '/electrumbridge.ElectrumBridge/NewRawKey', + request_serializer=rpc__pb2.NewRawKeyRequest.SerializeToString, + response_deserializer=rpc__pb2.NewRawKeyResponse.FromString, + ) + self.FetchInputInfo = channel.unary_unary( + '/electrumbridge.ElectrumBridge/FetchInputInfo', + request_serializer=rpc__pb2.FetchInputInfoRequest.SerializeToString, + response_deserializer=rpc__pb2.FetchInputInfoResponse.FromString, + ) + self.ComputeInputScript = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ComputeInputScript', + request_serializer=rpc__pb2.ComputeInputScriptRequest.SerializeToString, + response_deserializer=rpc__pb2.ComputeInputScriptResponse.FromString, + ) + self.SignOutputRaw = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SignOutputRaw', + request_serializer=rpc__pb2.SignOutputRawRequest.SerializeToString, + response_deserializer=rpc__pb2.SignOutputRawResponse.FromString, + ) + self.PublishTransaction = channel.unary_unary( + '/electrumbridge.ElectrumBridge/PublishTransaction', + request_serializer=rpc__pb2.PublishTransactionRequest.SerializeToString, + response_deserializer=rpc__pb2.PublishTransactionResponse.FromString, + ) + self.LockOutpoint = channel.unary_unary( + '/electrumbridge.ElectrumBridge/LockOutpoint', + request_serializer=rpc__pb2.LockOutpointRequest.SerializeToString, + response_deserializer=rpc__pb2.LockOutpointResponse.FromString, + ) + self.UnlockOutpoint = channel.unary_unary( + '/electrumbridge.ElectrumBridge/UnlockOutpoint', + request_serializer=rpc__pb2.UnlockOutpointRequest.SerializeToString, + response_deserializer=rpc__pb2.UnlockOutpointResponse.FromString, + ) + self.ListTransactionDetails = channel.unary_unary( + '/electrumbridge.ElectrumBridge/ListTransactionDetails', + request_serializer=rpc__pb2.ListTransactionDetailsRequest.SerializeToString, + response_deserializer=rpc__pb2.ListTransactionDetailsResponse.FromString, + ) + self.SendOutputs = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SendOutputs', + request_serializer=rpc__pb2.SendOutputsRequest.SerializeToString, + response_deserializer=rpc__pb2.SendOutputsResponse.FromString, + ) + self.IsSynced = channel.unary_unary( + '/electrumbridge.ElectrumBridge/IsSynced', + request_serializer=rpc__pb2.IsSyncedRequest.SerializeToString, + response_deserializer=rpc__pb2.IsSyncedResponse.FromString, + ) + self.SignMessage = channel.unary_unary( + '/electrumbridge.ElectrumBridge/SignMessage', + request_serializer=rpc__pb2.SignMessageRequest.SerializeToString, + response_deserializer=rpc__pb2.SignMessageResponse.FromString, + ) + + +class ElectrumBridgeServicer(object): + # missing associated documentation comment in .proto file + pass + + def SetHdSeed(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def NewAddress(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfirmedBalance(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FetchRootKey(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListUnspentWitness(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def NewRawKey(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FetchInputInfo(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ComputeInputScript(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SignOutputRaw(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PublishTransaction(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LockOutpoint(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnlockOutpoint(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListTransactionDetails(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendOutputs(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def IsSynced(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SignMessage(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ElectrumBridgeServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SetHdSeed': grpc.unary_unary_rpc_method_handler( + servicer.SetHdSeed, + request_deserializer=rpc__pb2.SetHdSeedRequest.FromString, + response_serializer=rpc__pb2.SetHdSeedResponse.SerializeToString, + ), + 'NewAddress': grpc.unary_unary_rpc_method_handler( + servicer.NewAddress, + request_deserializer=rpc__pb2.NewAddressRequest.FromString, + response_serializer=rpc__pb2.NewAddressResponse.SerializeToString, + ), + 'ConfirmedBalance': grpc.unary_unary_rpc_method_handler( + servicer.ConfirmedBalance, + request_deserializer=rpc__pb2.ConfirmedBalanceRequest.FromString, + response_serializer=rpc__pb2.ConfirmedBalanceResponse.SerializeToString, + ), + 'FetchRootKey': grpc.unary_unary_rpc_method_handler( + servicer.FetchRootKey, + request_deserializer=rpc__pb2.FetchRootKeyRequest.FromString, + response_serializer=rpc__pb2.FetchRootKeyResponse.SerializeToString, + ), + 'ListUnspentWitness': grpc.unary_unary_rpc_method_handler( + servicer.ListUnspentWitness, + request_deserializer=rpc__pb2.ListUnspentWitnessRequest.FromString, + response_serializer=rpc__pb2.ListUnspentWitnessResponse.SerializeToString, + ), + 'NewRawKey': grpc.unary_unary_rpc_method_handler( + servicer.NewRawKey, + request_deserializer=rpc__pb2.NewRawKeyRequest.FromString, + response_serializer=rpc__pb2.NewRawKeyResponse.SerializeToString, + ), + 'FetchInputInfo': grpc.unary_unary_rpc_method_handler( + servicer.FetchInputInfo, + request_deserializer=rpc__pb2.FetchInputInfoRequest.FromString, + response_serializer=rpc__pb2.FetchInputInfoResponse.SerializeToString, + ), + 'ComputeInputScript': grpc.unary_unary_rpc_method_handler( + servicer.ComputeInputScript, + request_deserializer=rpc__pb2.ComputeInputScriptRequest.FromString, + response_serializer=rpc__pb2.ComputeInputScriptResponse.SerializeToString, + ), + 'SignOutputRaw': grpc.unary_unary_rpc_method_handler( + servicer.SignOutputRaw, + request_deserializer=rpc__pb2.SignOutputRawRequest.FromString, + response_serializer=rpc__pb2.SignOutputRawResponse.SerializeToString, + ), + 'PublishTransaction': grpc.unary_unary_rpc_method_handler( + servicer.PublishTransaction, + request_deserializer=rpc__pb2.PublishTransactionRequest.FromString, + response_serializer=rpc__pb2.PublishTransactionResponse.SerializeToString, + ), + 'LockOutpoint': grpc.unary_unary_rpc_method_handler( + servicer.LockOutpoint, + request_deserializer=rpc__pb2.LockOutpointRequest.FromString, + response_serializer=rpc__pb2.LockOutpointResponse.SerializeToString, + ), + 'UnlockOutpoint': grpc.unary_unary_rpc_method_handler( + servicer.UnlockOutpoint, + request_deserializer=rpc__pb2.UnlockOutpointRequest.FromString, + response_serializer=rpc__pb2.UnlockOutpointResponse.SerializeToString, + ), + 'ListTransactionDetails': grpc.unary_unary_rpc_method_handler( + servicer.ListTransactionDetails, + request_deserializer=rpc__pb2.ListTransactionDetailsRequest.FromString, + response_serializer=rpc__pb2.ListTransactionDetailsResponse.SerializeToString, + ), + 'SendOutputs': grpc.unary_unary_rpc_method_handler( + servicer.SendOutputs, + request_deserializer=rpc__pb2.SendOutputsRequest.FromString, + response_serializer=rpc__pb2.SendOutputsResponse.SerializeToString, + ), + 'IsSynced': grpc.unary_unary_rpc_method_handler( + servicer.IsSynced, + request_deserializer=rpc__pb2.IsSyncedRequest.FromString, + response_serializer=rpc__pb2.IsSyncedResponse.SerializeToString, + ), + 'SignMessage': grpc.unary_unary_rpc_method_handler( + servicer.SignMessage, + request_deserializer=rpc__pb2.SignMessageRequest.FromString, + response_serializer=rpc__pb2.SignMessageResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'electrumbridge.ElectrumBridge', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/testserver.py b/testserver.py index 218d9dbe..360d8cb6 100644 --- a/testserver.py +++ b/testserver.py @@ -1,13 +1,19 @@ import asyncio async def handler(reader, writer): - magic = await reader.read(6) + magic = await reader.read(5+6) await asyncio.sleep(5) print("in five sec!") await asyncio.sleep(5) - writer.write(b'{\n "r_preimage": "6UNoNhDZ/0awtaDTM7KuCtlYcNkNljscxMLleoJv9+o=",\n "r_hash": "t7IwR6zq8ZAfHaxvTnPmHdyt9j2tVd9g6TDg59C4juM=",\n "value": "8192",\n "settled": true,\n "creation_date": "1519994196",\n "settle_date": "1519994199",\n "payment_request": "lntb81920n1pdfj325pp5k7erq3avatceq8ca43h5uulxrhw2ma3a442a7c8fxrsw059c3m3sdqqcqzysdpwv4dn2xd74lfmea3taxj6pjfxrdl42t8w7ceptgv5ds0td0ypk47llryl6t4a48x54d7mnwremgcmljced4dhwty9g3pfywr307aqpwtkzf4",\n "expiry": "3600",\n "cltv_expiry": "144"\n}\n') + writer.write(b'{\n "r_preimage": "6UNoNhDZ/0awtaDTM7KuCtlYcNkNljscxMLleoJv9+o=",\n "r_hash": "lQDtsJlLe8IzSRk0hrJcgglwRdtkHzX6mIwOhJrN7Ck=",\n "value": "8192",\n "settled": true,\n "creation_date": "1519994196",\n "settle_date": "1519994199",\n "payment_request": "lntb81920n1pdfj325pp5k7erq3avatceq8ca43h5uulxrhw2ma3a442a7c8fxrsw059c3m3sdqqcqzysdpwv4dn2xd74lfmea3taxj6pjfxrdl42t8w7ceptgv5ds0td0ypk47llryl6t4a48x54d7mnwremgcmljced4dhwty9g3pfywr307aqpwtkzf4",\n "expiry": "3600",\n "cltv_expiry": "144"\n}\n'.replace(b"\n",b"")) await writer.drain() print(magic) +async def handler2(reader, writer): + while True: + data = await reader.read(2048) + print(data) + asyncio.ensure_future(asyncio.start_server(handler, "127.0.0.1", 1080)) +asyncio.ensure_future(asyncio.start_server(handler2, "127.0.0.1", 8090)) asyncio.get_event_loop().run_forever()