feat(wallet)_: Saved addresses limit (#22069)

This commit adds limit for adding saved addresses upto 20 to prevent any unwanted behaviour.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This commit is contained in:
Mohamed Javid 2025-02-15 00:34:56 +05:30 committed by GitHub
parent 447945f46e
commit 8c82a84aee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 22 additions and 7 deletions

View File

@ -144,9 +144,9 @@
on-change-text (rn/use-callback
(fn [new-value]
(let [trimmed-value (string/trim new-value)]
(set-error (validate (string/lower-case trimmed-value)))
(set-address-or-ens trimmed-value)
(set-ens-address "")
(set-error (validate (string/lower-case trimmed-value)))
(when (validation/ens-name? trimmed-value)
(debounce/debounce-and-dispatch
[:wallet/resolve-ens

View File

@ -154,3 +154,15 @@
{:db (update-in db [:wallet :ui] dissoc :saved-address)})
(rf/reg-event-fx :wallet/clear-address-to-save clear-address-to-save)
(defn check-remaining-capacity-for-saved-addresses
[{:keys [db]} [{:keys [on-success on-error]}]]
(let [test-networks-enabled? (boolean (get-in db [:profile/profile :test-networks-enabled?]))]
{:fx [[:json-rpc/call
[{:method "wakuext_remainingCapacityForSavedAddresses"
:params [test-networks-enabled?]
:on-success on-success
:on-error on-error}]]]}))
(rf/reg-event-fx :wallet/check-remaining-capacity-for-saved-addresses
check-remaining-capacity-for-saved-addresses)

View File

@ -103,7 +103,13 @@
(defn- add-address-to-save
[]
(rf/dispatch [:open-modal :screen/settings.add-address-to-save]))
(rf/dispatch [:wallet/check-remaining-capacity-for-saved-addresses
{:on-success #(rf/dispatch [:open-modal :screen/settings.add-address-to-save])
:on-error #(rf/dispatch [:toasts/upsert
{:type :negative
:theme :dark
:text (i18n/label
:t/saved-addresses-limit-reached-toast)}])}]))
(defn view
[]

View File

@ -5,7 +5,6 @@
[clojure.string :as string]
[status-im.constants :as constants]
[status-im.contexts.wallet.collectible.utils :as collectible-utils]
[status-im.contexts.wallet.common.utils.networks :as network-utils]
[status-im.contexts.wallet.send.utils :as send-utils]
[utils.collection :as utils.collection]
[utils.money :as money]
@ -165,10 +164,7 @@
(defn- add-keys-to-saved-address
[saved-address]
(-> saved-address
(assoc :network-preferences-names
(network-utils/network-preference-prefix->network-names (:chain-short-names saved-address)))
(assoc :ens? (not (string/blank? (:ens saved-address))))))
(assoc saved-address :ens? (not (string/blank? (:ens saved-address)))))
(defn rpc->saved-address
[saved-address]

View File

@ -2279,6 +2279,7 @@
"saved-address-network-preference-selection-description": "Only change if you know which networks the address owner is happy to to receive funds on",
"saved-address-removed": "Saved address removed",
"saved-addresses": "Saved addresses",
"saved-addresses-limit-reached-toast": "Limit of 20 saved addresses reached. Remove a saved address to add a new one.",
"saving-keys-to-device": "Saving keys to device...",
"say-hi": "Say hi",
"scan-an-account-qr-code": "Scan an account QR code",