Skip to content

Commit 7a53a8b

Browse files
author
kratm2
committed
support silent payment addresses in contacts
1 parent 73fde26 commit 7a53a8b

File tree

5 files changed

+16
-6
lines changed

5 files changed

+16
-6
lines changed

electrum/contacts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def pop(self, key):
8787
return None
8888

8989
async def resolve(self, k) -> dict:
90-
if bitcoin.is_address(k) or is_silent_payment_address(k):
90+
if bitcoin.is_address(k):
9191
return {
9292
'address': k,
9393
'type': 'address'
1.39 MB
Loading

electrum/gui/qt/contact_list.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,12 @@ def update(self):
119119
items[self.Columns.NAME].setEditable(contact_type != 'openalias')
120120
items[self.Columns.ADDRESS].setEditable(False)
121121
items[self.Columns.NAME].setData(key, self.ROLE_CONTACT_KEY)
122-
items[self.Columns.NAME].setIcon(
123-
read_QIcon("lightning" if contact_type == 'lnaddress' else "bitcoin")
122+
icon = (
123+
"lightning" if contact_type == 'lnaddress' else
124+
"silent_payment" if contact_type == 'sp_address' else
125+
"bitcoin"
124126
)
127+
items[self.Columns.NAME].setIcon(read_QIcon(icon))
125128
row_count = self.model().rowCount()
126129
self.model().insertRow(row_count, items)
127130
if key == current_key:

electrum/gui/qt/main_window.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1605,7 +1605,13 @@ def set_contact(self, label, address):
16051605
self.show_error(_('Invalid Address'))
16061606
self.contact_list.update() # Displays original unchanged value
16071607
return False
1608-
address_type = 'address' if is_address(address) else 'lnaddress'
1608+
1609+
if is_address(address):
1610+
address_type = 'address'
1611+
elif is_silent_payment_address(address):
1612+
address_type = 'sp_address'
1613+
else:
1614+
address_type = 'lnaddress'
16091615
self.contacts[address] = (address_type, label)
16101616
self.contact_list.update()
16111617
self.history_list.update()

electrum/payment_identifier.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,12 +283,13 @@ def parse(self, text: str):
283283
self.spk_is_address = is_address
284284
self.set_state(PaymentIdentifierState.AVAILABLE)
285285
elif self.contacts and (contact := self.contacts.by_name(text)):
286-
if contact['type'] == 'address':
286+
if contact['type'] in ('address', 'sp_address'):
287287
self._type = PaymentIdentifierType.BIP21
288288
self.bip21 = {
289-
'address': contact['address'],
290289
'label': contact['name']
291290
}
291+
key = 'address' if contact['type'] == 'address' else constants.net.BIP352_HRP
292+
self.bip21[key] = contact['address']
292293
self.set_state(PaymentIdentifierState.AVAILABLE)
293294
elif contact['type'] in ('openalias', 'lnaddress'):
294295
self._type = PaymentIdentifierType.EMAILLIKE

0 commit comments

Comments
 (0)