From 4ba2b877dd946cd59573cb6a1f931a53e9fa43bb Mon Sep 17 00:00:00 2001 From: tecnovert Date: Thu, 31 Jul 2025 00:36:16 +0200 Subject: [PATCH] Store pubkeys in BSX if possible. --- basicswap/basicswap.py | 2 +- basicswap/network/bsx_network.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/basicswap/basicswap.py b/basicswap/basicswap.py index c2043d8..61e6aa7 100644 --- a/basicswap/basicswap.py +++ b/basicswap/basicswap.py @@ -1151,7 +1151,7 @@ class BasicSwap(BaseApp, BSXNetwork, UIApp): # Scan inbox # TODO: Redundant? small window for zmq messages to go unnoticed during startup? options = {"encoding": "hex"} - if self._smsg_plaintext_version >= 2: + if self._can_use_smsg_plaintext2: options["pubkey_from"] = True ro = self.callrpc("smsginbox", ["unread", "", options]) nm = 0 diff --git a/basicswap/network/bsx_network.py b/basicswap/network/bsx_network.py index abb1aa6..b1c2e06 100644 --- a/basicswap/network/bsx_network.py +++ b/basicswap/network/bsx_network.py @@ -142,6 +142,13 @@ class BSXNetwork: elif network["type"] == "simplex": initialiseSimplexNetwork(self, network) + self._can_use_smsg_plaintext2 = False + if ( + Coins.PART in self.coin_clients + and self.coin_clients[Coins.PART]["core_version"] > 23020700 + ): + self._can_use_smsg_plaintext2 = True + if have_smsg: self._have_smsg_rpc = True if self._zmq_queue_enabled: @@ -205,7 +212,7 @@ class BSXNetwork: # TODO: Ensure smsg is enabled for the active wallet. - if self._smsg_plaintext_version >= 2: + if self._can_use_smsg_plaintext2: self.callrpc("smsgoptions", ["set", "addReceivedPubkeys", False]) now: int = self.getTime() @@ -663,6 +670,7 @@ class BSXNetwork: if self._smsg_plaintext_version >= 2: options["plaintext_format_version"] = 2 options["compression"] = 0 + if self._can_use_smsg_plaintext2: send_to = self.getPubkeyForAddress(cursor, addr_to).hex() else: send_to = addr_to @@ -744,7 +752,7 @@ class BSXNetwork: msg_id = message[2:] options = {"encoding": "hex", "setread": True} - if self._smsg_plaintext_version >= 2: + if self._can_use_smsg_plaintext2: options["pubkey_from"] = True num_tries = 5 for i in range(num_tries + 1): @@ -1093,7 +1101,7 @@ class BSXNetwork: if now - self._last_checked_smsg >= self.check_smsg_seconds: self._last_checked_smsg = now options = {"encoding": "hex", "setread": True} - if self._smsg_plaintext_version >= 2: + if self._can_use_smsg_plaintext2: options["pubkey_from"] = True msgs = self.callrpc("smsginbox", ["unread", "", options]) for msg in msgs["messages"]: