Skip to content

Commit 5ebd133

Browse files
authored
group ens names with chain-id (#18001)
1 parent 563f1c5 commit 5ebd133

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

src/status_im/ens/core.cljs

+19-14
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,20 @@
9191
{:chainId :chain-id
9292
:removed :removed?})
9393
name-details)]
94-
{:db (reduce (fn [db {:keys [username removed?] :as name-detail}]
94+
{:db (reduce (fn [db {:keys [username removed? chain-id] :as name-detail}]
9595
(if removed?
96-
(update-in db [:ens/names] dissoc username)
97-
(let [old (get-in db [:ens/names username])]
98-
(assoc-in db [:ens/names username] (merge old name-detail)))))
96+
(update-in db [:ens/names chain-id] dissoc username)
97+
(let [old (get-in db [:ens/names chain-id username])]
98+
(assoc-in db [:ens/names chain-id username] (merge old name-detail)))))
9999
db
100100
name-details)}))
101101

102102
(rf/defn save-username
103103
{:events [:ens/save-username]}
104104
[{:keys [db] :as cofx} custom-domain? username redirect-to-summary? connected?]
105105
(let [name (fullname custom-domain? username)
106-
names (get-in db [:ens/names] [])
107-
chain-id (chain/chain-id db)]
106+
chain-id (chain/chain-id db)
107+
names (get-in db [:ens/names chain-id] [])]
108108
(rf/merge cofx
109109
(cond-> {:dispatch-n [[:ens/update-usernames [{:username name :chain-id chain-id}]]]}
110110
connected? (assoc :json-rpc/call
@@ -240,7 +240,8 @@
240240
{:events [::set-username-candidate]}
241241
[{:keys [db]} username]
242242
(let [{:keys [custom-domain?]} (:ens/registration db)
243-
usernames (into #{} (keys (get-in db [:ens/names])))
243+
chain-id (chain/chain-id db)
244+
usernames (into #{} (keys (get-in db [:ens/names chain-id])))
244245
state (state custom-domain? username usernames)]
245246
(reset! resolve-last-id (random/id))
246247
(merge
@@ -310,20 +311,23 @@
310311
(rf/defn store-name-address
311312
{:events [::address-resolved]}
312313
[{:keys [db]} username address]
313-
{:db (assoc-in db [:ens/names username :address] address)})
314+
(let [chain-id (chain/chain-id db)]
315+
{:db (assoc-in db [:ens/names chain-id username :address] address)}))
314316

315317
(rf/defn store-name-public-key
316318
{:events [::public-key-resolved]}
317319
[{:keys [db]} username public-key]
318-
{:db (assoc-in db [:ens/names username :public-key] public-key)})
320+
(let [chain-id (chain/chain-id db)]
321+
{:db (assoc-in db [:ens/names chain-id username :public-key] public-key)}))
319322

320323
(rf/defn store-expiration-date
321324
{:events [::get-expiration-time-success]}
322325
[{:keys [now db]} username timestamp]
323-
{:db (-> db
324-
(assoc-in [:ens/names username :expiration-date]
325-
(datetime/timestamp->year-month-day-date timestamp))
326-
(assoc-in [:ens/names username :releasable?] (<= timestamp now)))})
326+
(let [chain-id (chain/chain-id db)]
327+
{:db (-> db
328+
(assoc-in [:ens/names chain-id username :expiration-date]
329+
(datetime/timestamp->year-month-day-date timestamp))
330+
(assoc-in [:ens/names chain-id username :releasable?] (<= timestamp now)))}))
327331

328332
(rf/defn navigate-to-name
329333
{:events [::navigate-to-name]}
@@ -352,7 +356,8 @@
352356
(rf/defn remove-username
353357
{:events [::remove-username]}
354358
[{:keys [db] :as cofx} name]
355-
(let [names (get-in db [:ens/names] [])
359+
(let [chain-id (chain/chain-id db)
360+
names (get-in db [:ens/names chain-id] [])
356361
preferred-name (get-in db [:profile/profile :preferred-name])
357362
new-names (remove #(= name %) (keys names))
358363
{:keys [chain-id username]} (get-in names [name])]

src/status_im/subs/ens.cljs

+9-2
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,17 @@
6060
{:state state
6161
:username username}))
6262

63+
(re-frame/reg-sub
64+
:ens/current-names
65+
:<- [:ens/names]
66+
:<- [:chain-id]
67+
(fn [[all-names chain-id]]
68+
(get all-names chain-id)))
69+
6370
(re-frame/reg-sub
6471
:ens.name/screen
6572
:<- [:get-screen-params :ens-name-details]
66-
:<- [:ens/names]
73+
:<- [:ens/current-names]
6774
(fn [[name ens]]
6875
(let [{:keys [address public-key expiration-date releasable?]} (get ens name)
6976
pending? (nil? address)]
@@ -79,7 +86,7 @@
7986

8087
(re-frame/reg-sub
8188
:ens.main/screen
82-
:<- [:ens/names]
89+
:<- [:ens/current-names]
8390
:<- [:profile/profile]
8491
:<- [:ens/preferred-name]
8592
:<- [:ens/registrations]

src/status_im2/subs/profile.cljs

+1-1
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@
276276
(re-frame/reg-sub
277277
:profile/profile-with-image
278278
:<- [:profile/profile]
279-
:<- [:ens/names]
279+
:<- [:ens/current-names]
280280
:<- [:mediaserver/port]
281281
:<- [:initials-avatar-font-file]
282282
(fn [[profile ens-names port font-file] [_ avatar-opts]]

0 commit comments

Comments
 (0)