From 4fe62553ca6c6792ef565d83cf2cf901ad27f98e Mon Sep 17 00:00:00 2001 From: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:59:29 +0530 Subject: [PATCH] Wallet - Refresh tokens and prices (#18456) This commit adds - RPC call for start wallet which will signal the client to refresh data (tokens, prices, ...etc) every 10 minutes - Refreshes tokens and prices every 10 minutes on receiving the "wallet-tick-reload" signal --------- Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com> --- src/legacy/status_im/ethereum/subscriptions.cljs | 1 + src/status_im/contexts/wallet/events.cljs | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/legacy/status_im/ethereum/subscriptions.cljs b/src/legacy/status_im/ethereum/subscriptions.cljs index 986105be5e..ee5c6d9865 100644 --- a/src/legacy/status_im/ethereum/subscriptions.cljs +++ b/src/legacy/status_im/ethereum/subscriptions.cljs @@ -89,4 +89,5 @@ "wallet-get-collectibles-details-done" {:fx [[:dispatch [:wallet/get-collectible-details-done event]]]} + "wallet-tick-reload" {:fx [[:dispatch [:wallet/reload]]]} (log/debug ::unknown-wallet-event :type type :event event))) diff --git a/src/status_im/contexts/wallet/events.cljs b/src/status_im/contexts/wallet/events.cljs index 394aa60f28..4015492e53 100644 --- a/src/status_im/contexts/wallet/events.cljs +++ b/src/status_im/contexts/wallet/events.cljs @@ -327,9 +327,23 @@ {:fx [[:dispatch [:hide-bottom-sheet]] [:dispatch [:browser.ui/open-url (str explorer-link "/" address)]]]})) +(rf/reg-event-fx :wallet/reload + (fn [_] + {:fx [[:dispatch-n [[:wallet/get-wallet-token]]]]})) + +(rf/reg-event-fx :wallet/start-wallet + (fn [_] + {:fx [[:json-rpc/call + [{:method "wallet_startWallet" + :on-error #(log/info "failed to start wallet" + {:error % + :event :wallet/start-wallet})}]]]})) + (rf/reg-event-fx :wallet/initialize (fn [] - {:fx [[:dispatch-n [[:wallet/get-ethereum-chains] [:wallet/get-accounts]]]]})) + {:fx [[:dispatch [:wallet/start-wallet]] + [:dispatch [:wallet/get-ethereum-chains]] + [:dispatch [:wallet/get-accounts]]]})) (rf/reg-event-fx :wallet/share-account (fn [_ [{:keys [content title]}]]