Skip to content

Commit ba15368

Browse files
refactor
1 parent 1ba4491 commit ba15368

File tree

1 file changed

+35
-26
lines changed
  • internal_filesystem/apps/com.lightningpiggy.displaywallet/assets

1 file changed

+35
-26
lines changed

internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/wallet.py

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ def are_payment_lists_equal(self, list1, list2):
3535
return False
3636
return all(p1 == p2 for p1, p2 in zip(list1, list2))
3737

38+
def handle_new_balance(self, new_balance):
39+
if new_balance != self.last_known_balance:
40+
self.last_known_balance = new_balance
41+
self.balance_updated_cb()
42+
new_payments = self.fetch_payments() # if the balance changed, then re-list transactions
43+
self.handle_new_payments(new_payments)
44+
3845
def handle_new_payments(self, new_payments):
3946
print("handle_new_payments")
4047
if not self.are_payment_lists_equal(self.payment_list, new_payments):
@@ -76,11 +83,7 @@ def wallet_manager_thread(self):
7683
while self.keep_running:
7784
try:
7885
new_balance = self.fetch_balance()
79-
if new_balance != self.last_known_balance:
80-
self.last_known_balance = new_balance
81-
self.balance_updated_cb()
82-
new_payments = self.fetch_payments() # if the balance changed, then re-list transactions
83-
self.handle_new_payments(new_payments)
86+
self.handle_new_balance(new_balance)
8487
except Exception as e:
8588
print(f"WARNING: wallet_manager_thread got exception {e}, ignorning.")
8689
print("Sleeping a while before re-fetching balance...")
@@ -124,10 +127,10 @@ def fetch_payments(self):
124127
response.close()
125128
try:
126129
payments_reply = json.loads(response_text)
127-
print(f"Got payments: {payments_reply}")
130+
#print(f"Got payments: {payments_reply}")
128131
new_payments = []
129132
for payment in payments_reply:
130-
print(f"Got payment: {payment}")
133+
#print(f"Got payment: {payment}")
131134
amount = payment["amount"]
132135
amount = round(amount / 1000)
133136
comment = payment["memo"]
@@ -182,25 +185,7 @@ def wallet_manager_thread(self):
182185
self.relay_manager.add_subscription(self.subscription_id, self.filters)
183186
time.sleep(1)
184187

185-
# Create get_balance request
186-
balance_request = {
187-
"method": "get_balance",
188-
"params": {}
189-
}
190-
print(f"DEBUG: Created balance request: {balance_request}")
191-
print(f"DEBUG: Creating encrypted DM to wallet pubkey: {self.wallet_pubkey}")
192-
dm = EncryptedDirectMessage(
193-
recipient_pubkey=self.wallet_pubkey,
194-
cleartext_content=json.dumps(balance_request)
195-
)
196-
print(f"DEBUG: Signing DM {json.dumps(dm)} with private key")
197-
self.private_key.sign_event(dm) # sign also does encryption if it's a encrypted dm
198-
print(f"DEBUG: Publishing subscription request")
199-
request_message = [ClientMessageType.REQUEST, self.subscription_id]
200-
request_message.extend(self.filters.to_json_array())
201-
self.relay_manager.publish_message(json.dumps(request_message))
202-
print(f"DEBUG: Publishing encrypted DM")
203-
self.relay_manager.publish_event(dm)
188+
self.fetch_balance()
204189

205190
print(f"DEBUG: Waiting for incoming NWC events...")
206191
while self.keep_running:
@@ -236,6 +221,30 @@ def wallet_manager_thread(self):
236221
print("NWCWallet: manage_wallet_thread stopping, closing connections...")
237222
self.relay_manager.close_connections()
238223

224+
def fetch_balance(self):
225+
# Create get_balance request
226+
balance_request = {
227+
"method": "get_balance",
228+
"params": {}
229+
}
230+
print(f"DEBUG: Created balance request: {balance_request}")
231+
print(f"DEBUG: Creating encrypted DM to wallet pubkey: {self.wallet_pubkey}")
232+
dm = EncryptedDirectMessage(
233+
recipient_pubkey=self.wallet_pubkey,
234+
cleartext_content=json.dumps(balance_request)
235+
)
236+
print(f"DEBUG: Signing DM {json.dumps(dm)} with private key")
237+
self.private_key.sign_event(dm) # sign also does encryption if it's a encrypted dm
238+
print(f"DEBUG: Publishing subscription request")
239+
request_message = [ClientMessageType.REQUEST, self.subscription_id]
240+
request_message.extend(self.filters.to_json_array())
241+
self.relay_manager.publish_message(json.dumps(request_message))
242+
print(f"DEBUG: Publishing encrypted DM")
243+
self.relay_manager.publish_event(dm)
244+
245+
def fetch_payments(self):
246+
# just send the message to request payments and they'll be handled by the main loop
247+
pass
239248

240249
def parse_nwc_url(self, nwc_url):
241250
"""Parse Nostr Wallet Connect URL to extract pubkey, relay, secret, and lud16."""

0 commit comments

Comments
 (0)