From 0f185c693fc277d8ecef7b65f225e803b557fb94 Mon Sep 17 00:00:00 2001 From: Sosthene00 <674694@protonmail.ch> Date: Thu, 18 Apr 2024 00:35:16 +0200 Subject: [PATCH] fix update outputs for user --- src/services.ts | 34 +++++++++++++++++++++------------- src/websockets.ts | 2 +- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/services.ts b/src/services.ts index 1643b09..77a23ca 100644 --- a/src/services.ts +++ b/src/services.ts @@ -324,23 +324,22 @@ class Services { } } - public async updateOwnedOutputsForUser(preId: string): Promise { + public async updateOwnedOutputsForUser(): Promise { const services = await Services.getInstance(); let latest_outputs: outputs_list; try { - latest_outputs = services.sdkClient.get_outpoints_for_user(preId); + latest_outputs = services.sdkClient.get_outpoints_for_user(); } catch (error) { console.error(error); return; } try { - const indexedDB = await IndexedDB.getInstance(); - const db = await indexedDB.getDb(); - const storeName = indexedDB.getStoreList().AnkUser; - let user = await indexedDB.getObject(db, storeName, preId); - user.outputs = latest_outputs; - await indexedDB.setObject(db, storeName, user, null); + let user = await services.getUserInfo(); + if (user) { + user.outputs = latest_outputs; + await services.updateUser(user); + } } catch (error) { console.error(error); } @@ -350,9 +349,9 @@ class Services { const services = await Services.getInstance(); try { - const updated_user: string = services.sdkClient.check_transaction_for_silent_payments(tx, blkheight, tweak_data); - await services.updateOwnedOutputsForUser(updated_user); - return updated_user; + const txid = services.sdkClient.check_transaction_for_silent_payments(tx, blkheight, tweak_data); + await services.updateOwnedOutputsForUser(); + return txid; } catch (error) { console.error(error); return null; @@ -719,6 +718,16 @@ class Services { return null; } + public async updateUser(user: User): Promise { + try { + const indexedDB = await IndexedDB.getInstance(); + const db = await indexedDB.getDb(); + await indexedDB.setObject(db, indexedDB.getStoreList().AnkUser, user, null); + } catch (error) { + throw error; + } + } + public async getUserInfo(): Promise { try { const indexedDB = await IndexedDB.getInstance(); @@ -736,8 +745,7 @@ class Services { } } } catch (error) { - console.error("Can't get user from db"); - return null; + throw error; } } diff --git a/src/websockets.ts b/src/websockets.ts index c73e7dd..c94b4af 100644 --- a/src/websockets.ts +++ b/src/websockets.ts @@ -32,7 +32,7 @@ class WebSocketClient { if (res.topic === 'new_tx') { // we received a tx window.alert(`New tx\n${res.message}`); - await services.updateOwnedOutputsForUser(res.message); + await services.updateOwnedOutputsForUser(); } } } else {