diff --git a/src/status_im/contexts/wallet/wallet_connect/effects.cljs b/src/status_im/contexts/wallet/wallet_connect/effects.cljs index cb1ad13d5412..c71fa3575256 100644 --- a/src/status_im/contexts/wallet/wallet_connect/effects.cljs +++ b/src/status_im/contexts/wallet/wallet_connect/effects.cljs @@ -10,11 +10,11 @@ :effects.wallet-connect/init (fn [{:keys [on-success on-fail]}] (let - [project-id config/WALLET_CONNECT_PROJECT_ID - metadata {:name (i18n/label :t/status) - :description (i18n/label :t/status-is-a-secure-messaging-app) - :url constants/wallet-connect-metadata-url - :icons [constants/wallet-connect-metadata-icon]}] + [project-id config/WALLET_CONNECT_PROJECT_ID + metadata {:name (i18n/label :t/status) + :description (i18n/label :t/status-is-a-secure-messaging-app) + :url constants/wallet-connect-metadata-url + :icons [constants/wallet-connect-metadata-icon]}] (-> (wallet-connect/init project-id metadata) (promesa/then on-success) (promesa/catch on-fail))))) @@ -29,6 +29,14 @@ (js->clj :keywordize-keys true) handler))))) +(rf/reg-fx + :effects.wallet-connect/get-pairings + (fn [{:keys [web3-wallet on-success on-fail]}] + (-> (.. web3-wallet -core -pairing) + (.getPairings) + (promesa/then on-success) + (promesa/catch on-fail)))) + (rf/reg-fx :effects.wallet-connect/pair (fn [{:keys [web3-wallet url on-success on-fail]}] @@ -37,6 +45,13 @@ (promesa/then on-success) (promesa/catch on-fail)))) +(rf/reg-fx + :effects.wallet-connect/get-active-sessions + (fn [{:keys [web3-wallet on-success on-fail]}] + (-> (.getActiveSessions web3-wallet) + (promesa/then on-success) + (promesa/catch on-fail)))) + (rf/reg-fx :effects.wallet-connect/approve-session (fn [{:keys [web3-wallet proposal supported-namespaces on-success on-fail]}] diff --git a/src/status_im/contexts/wallet/wallet_connect/events.cljs b/src/status_im/contexts/wallet/wallet_connect/events.cljs index 55f93292b8ba..039f36ef8e85 100644 --- a/src/status_im/contexts/wallet/wallet_connect/events.cljs +++ b/src/status_im/contexts/wallet/wallet_connect/events.cljs @@ -43,6 +43,15 @@ (fn [{:keys [db]}] {:db (dissoc db :wallet-connect/current-proposal)})) +(rf/reg-event-fx + :wallet-connect/get-pairings + (fn [{:keys [db]}] + (let [web3-wallet (get db :wallet-connect/web3-wallet)] + {:fx [[:effects.wallet-connect/get-pairings + {:web3-wallet web3-wallet + :on-fail #(log/error "Failed to get dApp pairings" {:error %}) + :on-success #(log/info "Got dApp pairings successfully" {:error %})}]]}))) + (rf/reg-event-fx :wallet-connect/pair (fn [{:keys [db]} [url]] @@ -53,6 +62,15 @@ :on-fail #(log/error "Failed to pair with dApp" {:error %}) :on-success #(log/info "dApp paired successfully")}]]}))) +(rf/reg-event-fx + :wallet-connect/get-active-sessions + (fn [{:keys [db]}] + (let [web3-wallet (get db :wallet-connect/web3-wallet)] + {:fx [[:effects.wallet-connect/get-active-sessions + {:web3-wallet web3-wallet + :on-fail #(log/error "Failed to get active sessions" {:error %}) + :on-success #(log/info "Got active sessions successfully" {:sessions %})}]]}))) + (rf/reg-event-fx :wallet-connect/approve-session (fn [{:keys [db]}]