diff --git a/src/cutecoin/core/net/network.py b/src/cutecoin/core/net/network.py index f483db38b2bb6a992ec36f7b32196f7ae89e5694..d23edee9eb686a3a022a4e19b9817ca72f727acb 100644 --- a/src/cutecoin/core/net/network.py +++ b/src/cutecoin/core/net/network.py @@ -200,12 +200,12 @@ class Network(QObject): node.refresh() logging.debug("End of network discovery") - @pyqtSlot(Peer) - def handle_new_node(self, peer): + @pyqtSlot(Peer, str) + def handle_new_node(self, peer, pubkey): pubkeys = [n.pubkey for n in self.nodes] if peer.pubkey not in pubkeys: logging.debug("New node found : {0}".format(peer.pubkey[:5])) - node = Node.from_peer(self.network_manager, self.currency, peer) + node = Node.from_peer(self.network_manager, self.currency, peer, pubkey) self.add_node(node) self.nodes_changed.emit() diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py index 617d0fdf1153d572367446637b26ca12e52410f9..3497eb2cca5e0904afc86496cb6b1d247c5db1de 100644 --- a/src/cutecoin/core/net/node.py +++ b/src/cutecoin/core/net/node.py @@ -33,7 +33,7 @@ class Node(QObject): CORRUPTED = 4 changed = pyqtSignal() - neighbour_found = pyqtSignal(Peer) + neighbour_found = pyqtSignal(Peer, str) def __init__(self, network_manager, currency, endpoints, uid, pubkey, block, state, last_change, last_merkle, software, version): @@ -97,7 +97,7 @@ class Node(QObject): return None @classmethod - def from_peer(cls, network_manager, currency, peer): + def from_peer(cls, network_manager, currency, peer, pubkey): """ Factory method to get a node from a peer document. @@ -109,7 +109,7 @@ class Node(QObject): if peer.currency != currency: raise InvalidNodeCurrency(peer.currency, currency) - node = cls(network_manager, peer.currency, peer.endpoints, "", "", 0, + node = cls(network_manager, peer.currency, peer.endpoints, "", pubkey, 0, Node.ONLINE, time.time(), {'root': "", 'leaves': []}, "", "") @@ -450,7 +450,8 @@ class Node(QObject): leaf_data = json.loads(strdata) doc = Peer.from_signed_raw("{0}{1}\n".format(leaf_data['leaf']['value']['raw'], leaf_data['leaf']['value']['signature'])) - self.neighbour_found.emit(doc) + pubkey = leaf_data['leaf']['value']['pubkey'] + self.neighbour_found.emit(doc, pubkey) else: logging.debug("Error in leaf reply")