Skip to content

Commit 86cc38f

Browse files
committed
Move address-to-watch events and subs to a different context
1 parent 4338c5b commit 86cc38f

File tree

4 files changed

+73
-63
lines changed

4 files changed

+73
-63
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
(ns status-im.contexts.wallet.accounts.add-account.address-to-watch.events
2+
(:require [clojure.string :as string]
3+
[status-im.constants :as constants]
4+
[utils.re-frame :as rf]
5+
[taoensso.timbre :as log]))
6+
7+
(rf/reg-event-fx
8+
:wallet/ens-not-found
9+
(fn [{:keys [db]} _]
10+
{:db (-> db
11+
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] :invalid-ens)
12+
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] nil))}))
13+
14+
(rf/reg-event-fx
15+
:wallet/store-address-activity
16+
(fn [{:keys [db]} [address {:keys [hasActivity]}]]
17+
(let [registered-addresses (-> db :wallet :accounts keys set)
18+
address-already-registered? (registered-addresses address)]
19+
(if address-already-registered?
20+
{:db (-> db
21+
(assoc-in [:wallet :ui :add-address-to-watch :activity-state]
22+
:address-already-registered)
23+
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] nil))}
24+
(let [state (if hasActivity :has-activity :no-activity)]
25+
{:db (-> db
26+
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] state)
27+
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] address))})))))
28+
29+
(rf/reg-event-fx
30+
:wallet/clear-address-activity
31+
(fn [{:keys [db]}]
32+
{:db (update-in db [:wallet :ui] dissoc :add-address-to-watch)}))
33+
34+
(rf/reg-event-fx
35+
:wallet/get-address-details
36+
(fn [{:keys [db]} [address-or-ens]]
37+
(let [request-params [constants/ethereum-mainnet-chain-id address-or-ens]
38+
ens? (string/includes? address-or-ens ".")]
39+
{:db (-> db
40+
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] :scanning)
41+
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] nil))
42+
:fx [(if ens?
43+
[:json-rpc/call
44+
[{:method "ens_addressOf"
45+
:params request-params
46+
:on-success [:wallet/get-address-details]
47+
:on-error [:wallet/ens-not-found]}]]
48+
[:json-rpc/call
49+
[{:method "wallet_getAddressDetails"
50+
:params request-params
51+
:on-success [:wallet/store-address-activity address-or-ens]
52+
:on-error #(log/info "failed to get address details"
53+
{:error %
54+
:event :wallet/get-address-details})}]])]})))

Diff for: src/status_im/contexts/wallet/events.cljs

+1-48
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
[react-native.background-timer :as background-timer]
55
[react-native.platform :as platform]
66
[status-im.constants :as constants]
7+
[status-im.contexts.wallet.accounts.add-account.address-to-watch.events]
78
[status-im.contexts.wallet.common.utils :as utils]
89
[status-im.contexts.wallet.data-store :as data-store]
910
[status-im.contexts.wallet.events.collectibles]
@@ -359,54 +360,6 @@
359360
(fn [{:keys [db]}]
360361
{:db (assoc db :wallet/valid-ens-or-address? false)}))
361362

362-
(rf/reg-event-fx
363-
:wallet/ens-not-found
364-
(fn [{:keys [db]} _]
365-
{:db (-> db
366-
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] :invalid-ens)
367-
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] nil))}))
368-
369-
(rf/reg-event-fx
370-
:wallet/store-address-activity
371-
(fn [{:keys [db]} [address {:keys [hasActivity]}]]
372-
(let [registered-addresses (-> db :wallet :accounts keys set)
373-
address-already-registered? (registered-addresses address)]
374-
(if address-already-registered?
375-
{:db (-> db
376-
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] :address-already-registered)
377-
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] nil))}
378-
(let [state (if hasActivity :has-activity :no-activity)]
379-
{:db (-> db
380-
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] state)
381-
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] address))})))))
382-
383-
(rf/reg-event-fx
384-
:wallet/clear-address-activity
385-
(fn [{:keys [db]}]
386-
{:db (update-in db [:wallet :ui] dissoc :add-address-to-watch)}))
387-
388-
(rf/reg-event-fx
389-
:wallet/get-address-details
390-
(fn [{:keys [db]} [address-or-ens]]
391-
(let [request-params [constants/ethereum-mainnet-chain-id address-or-ens]
392-
ens? (string/includes? address-or-ens ".")]
393-
{:db (-> db
394-
(assoc-in [:wallet :ui :add-address-to-watch :activity-state] :scanning)
395-
(assoc-in [:wallet :ui :add-address-to-watch :validated-address] nil))
396-
:fx [(if ens?
397-
[:json-rpc/call
398-
[{:method "ens_addressOf"
399-
:params request-params
400-
:on-success [:wallet/get-address-details]
401-
:on-error [:wallet/ens-not-found]}]]
402-
[:json-rpc/call
403-
[{:method "wallet_getAddressDetails"
404-
:params request-params
405-
:on-success [:wallet/store-address-activity address-or-ens]
406-
:on-error #(log/info "failed to get address details"
407-
{:error %
408-
:event :wallet/get-address-details})}]])]})))
409-
410363
(rf/reg-event-fx
411364
:wallet/navigate-to-chain-explorer-from-bottom-sheet
412365
(fn [_ [explorer-link address]]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
(ns status-im.subs.wallet.add-account.address-to-watch
2+
(:require [re-frame.core :as rf]))
3+
4+
(rf/reg-sub
5+
:wallet/add-address-to-watch
6+
:<- [:wallet/ui]
7+
:-> :add-address-to-watch)
8+
9+
(rf/reg-sub
10+
:wallet/watch-address-activity-state
11+
:<- [:wallet/add-address-to-watch]
12+
:-> :activity-state)
13+
14+
(rf/reg-sub
15+
:wallet/watch-address-validated-address
16+
:<- [:wallet/add-address-to-watch]
17+
:-> :validated-address)

Diff for: src/status_im/subs/wallet/wallet.cljs

+1-15
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
(:require [clojure.string :as string]
33
[re-frame.core :as rf]
44
[status-im.contexts.wallet.common.utils :as utils]
5+
[status-im.subs.wallet.add-account.address-to-watch]
56
[utils.number]))
67

78
(defn- filter-networks
@@ -93,21 +94,6 @@
9394
:<- [:wallet/wallet-send]
9495
:-> :bridge-to-chain-id)
9596

96-
(rf/reg-sub
97-
:wallet/add-address-to-watch
98-
:<- [:wallet/ui]
99-
:-> :add-address-to-watch)
100-
101-
(rf/reg-sub
102-
:wallet/watch-address-activity-state
103-
:<- [:wallet/add-address-to-watch]
104-
:-> :activity-state)
105-
106-
(rf/reg-sub
107-
:wallet/watch-address-validated-address
108-
:<- [:wallet/add-address-to-watch]
109-
:-> :validated-address)
110-
11197
(rf/reg-sub
11298
:wallet/keypairs
11399
:<- [:wallet]

0 commit comments

Comments
 (0)