From 74104a7e2c353095a31e966527c8b5abe881c1b1 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 16:52:27 -0600 Subject: [PATCH 01/11] WIp --- .../contexts/wallet/add_account/create_account/view.cljs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/status_im/contexts/wallet/add_account/create_account/view.cljs b/src/status_im/contexts/wallet/add_account/create_account/view.cljs index 9693f192f98..c38c29fc3dd 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/view.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/view.cljs @@ -48,7 +48,6 @@ :action-props {:on-press #(rf/dispatch [:standard-auth/authorize {:on-auth-success on-auth-success :auth-button-label (i18n/label :t/continue)}]) - :button-text (i18n/label :t/edit) :icon-left :i/face-id :alignment :flex-start} From c82e6305e8b8d18510ff56be2ffbe02f4239c7f7 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 18:00:01 -0600 Subject: [PATCH 02/11] Fix color of non-selected keypairs --- src/quo/components/wallet/keypair/style.cljs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/quo/components/wallet/keypair/style.cljs b/src/quo/components/wallet/keypair/style.cljs index d56e49882c8..73882a6d4e4 100644 --- a/src/quo/components/wallet/keypair/style.cljs +++ b/src/quo/components/wallet/keypair/style.cljs @@ -7,14 +7,12 @@ [{:keys [blur? customization-color theme selected? container-style]}] (merge {:border-radius 16 :border-width 1 - :border-color (if selected? - (if blur? - colors/white - (colors/resolve-color customization-color theme)) - (if blur? - colors/white-opa-5 - (colors/theme-colors colors/neutral-10 colors/neutral-80 theme))) - :padding-bottom 8} + :padding-bottom 8 + :border-color (cond + (and selected? blur?) colors/white + selected? (colors/resolve-color customization-color theme) + blur? colors/white-opa-5 + :else (colors/theme-colors colors/neutral-10 colors/neutral-80 theme))} container-style)) (def header-container From 6f29573938c1488a9bf6948276d4d9aece4efd5e Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 18:00:18 -0600 Subject: [PATCH 03/11] Fix pressable area in keypairs --- src/quo/components/wallet/keypair/view.cljs | 37 +++++++++++---------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/quo/components/wallet/keypair/view.cljs b/src/quo/components/wallet/keypair/view.cljs index d6ab053cf1b..e5b2511ac90 100644 --- a/src/quo/components/wallet/keypair/view.cljs +++ b/src/quo/components/wallet/keypair/view.cljs @@ -95,20 +95,23 @@ (defn view [{:keys [accounts action container-style selected? on-press] :as props}] - [rn/pressable - {:style (style/container (merge props - {:selected? selected? - :container-style container-style})) - :on-press #(when (= action :selector) (on-press))} - [rn/view {:style style/header-container} - [avatar props] - [rn/view - {:style {:margin-left 8 - :flex 1}} - [title-view (assoc props :selected? selected?)] - [details-view props]]] - [rn/flat-list - {:data accounts - :render-fn acc-list-card - :separator [rn/view {:style {:height 8}}] - :style {:padding-horizontal 8}}]]) + (let [theme (quo.theme/use-theme)] + [rn/pressable + {:style (style/container (assoc props + :selected? selected? + :container-style container-style + :theme theme)) + :on-press #(when (= action :selector) (on-press)) + :pointer-events :box-only} + [rn/view {:style style/header-container} + [avatar props] + [rn/view + {:style {:margin-left 8 + :flex 1}} + [title-view (assoc props :selected? selected?)] + [details-view props]]] + [rn/flat-list + {:data accounts + :render-fn acc-list-card + :separator [rn/view {:style {:height 8}}] + :style {:padding-horizontal 8}}]])) From 204bff0cbc9a8e0b6dfb21c0f512b646a478a876 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 20:12:36 -0600 Subject: [PATCH 04/11] Make validation more robust --- .../contexts/wallet/add_account/create_account/view.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/status_im/contexts/wallet/add_account/create_account/view.cljs b/src/status_im/contexts/wallet/add_account/create_account/view.cljs index c38c29fc3dd..042130d362f 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/view.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/view.cljs @@ -230,7 +230,7 @@ {:account-color @account-color :slide-button-props {:on-auth-success on-auth-success :disabled? (or (empty? @account-name) - (= "" @derivation-path) + (string/blank? @derivation-path) (some? error))}} [avatar {:account-color @account-color From 9fc442e6f1f8c293d216a3e42e2419fef2698c06 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 20:13:11 -0600 Subject: [PATCH 05/11] Make confirm button always pressable --- .../wallet/add_account/create_account/select_keypair/view.cljs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs b/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs index dc106ce9cff..ae225a3e922 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs @@ -105,8 +105,7 @@ [quo/bottom-actions {:actions :one-action :button-one-label (i18n/label :t/confirm-account-origin) - :button-one-props {:disabled? (= selected-keypair selected-key-uid) - :customization-color customization-color + :button-one-props {:customization-color customization-color :on-press #(rf/dispatch [:wallet/confirm-account-origin selected-key-uid])} :container-style style/bottom-action-container}]])) From 8ea2cb5fbb3eadb12c0f36109677f7ab36bfb674 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 20:13:35 -0600 Subject: [PATCH 06/11] Fix wrong sentence in errors --- .../contexts/wallet/add_account/create_account/events.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/status_im/contexts/wallet/add_account/create_account/events.cljs b/src/status_im/contexts/wallet/add_account/create_account/events.cljs index 66806517915..904c75201ee 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/events.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/events.cljs @@ -124,7 +124,7 @@ :on-success on-success :on-error (fn [error] (log/error - "Failed to resolve next path derivation path" + "Failed to resolve next derivation path" {:event :wallet/next-derivation-path :method "accounts_resolveSuggestedPathForKeypair" :error error From b630eb9f1436fc5dca00af0e051f22e78d51df0d Mon Sep 17 00:00:00 2001 From: Ulises M Date: Thu, 20 Jun 2024 20:14:46 -0600 Subject: [PATCH 07/11] Solve account creation by fixing a memoized callback --- .../components/buttons/slide_button/view.cljs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/quo/components/buttons/slide_button/view.cljs b/src/quo/components/buttons/slide_button/view.cljs index dc9504f5e47..9a8d9bbbb1a 100644 --- a/src/quo/components/buttons/slide_button/view.cljs +++ b/src/quo/components/buttons/slide_button/view.cljs @@ -14,9 +14,7 @@ [react-native.reanimated :as reanimated])) (defn drag-gesture - [x-pos disabled? track-width sliding-complete? - set-sliding-complete - on-complete reset-fn] + [x-pos disabled? track-width sliding-complete? set-sliding-complete on-complete reset-fn] (-> (gesture/gesture-pan) (gesture/with-test-ID :slide-button-gestures) (gesture/enabled (not disabled?)) @@ -71,14 +69,16 @@ (dimensions :thumb)) [dimensions]) custom-color (if (= type :danger) :danger customization-color) - gesture (rn/use-memo #(drag-gesture x-pos - disabled? - (dimensions :usable-track) - sliding-complete? - set-sliding-complete - on-complete - reset-fn) - [sliding-complete? disabled?])] + gesture (rn/use-memo + (fn [] + (drag-gesture x-pos + disabled? + (dimensions :usable-track) + sliding-complete? + set-sliding-complete + on-complete + reset-fn)) + [sliding-complete? disabled? on-complete])] [gesture/gesture-detector {:gesture gesture} [reanimated/view From 2a668c79c5b7a54ef5be3a0e11dd19e5e33e27ec Mon Sep 17 00:00:00 2001 From: Ulises M Date: Fri, 21 Jun 2024 13:40:30 -0600 Subject: [PATCH 08/11] WIP --- .../wallet/add_account/create_account/events.cljs | 6 +++--- .../contexts/wallet/add_account/create_account/view.cljs | 1 + src/status_im/contexts/wallet/events.cljs | 8 +++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/status_im/contexts/wallet/add_account/create_account/events.cljs b/src/status_im/contexts/wallet/add_account/create_account/events.cljs index 904c75201ee..ca87dc271d2 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/events.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/events.cljs @@ -191,7 +191,7 @@ (rf/reg-event-fx :wallet/derive-address-and-add-account - (fn [_ [{:keys [password derived-from-address derivation-path account-preferences]}]] + (fn [_ [{:keys [password derived-from-address derivation-path account-preferences key-uid]}]] {:fx [[:json-rpc/call [{:method "wallet_getDerivedAddresses" :params [(security/safe-unmask-data password) @@ -199,9 +199,9 @@ [derivation-path]] :on-success (fn [[derived-account]] (rf/dispatch [:wallet/add-account - (assoc account-preferences :password password) + (assoc account-preferences :key-uid key-uid + :password password) derived-account])) :on-error #(log/info "Failed to get derived addresses" derived-from-address %)}]]]})) - diff --git a/src/status_im/contexts/wallet/add_account/create_account/view.cljs b/src/status_im/contexts/wallet/add_account/create_account/view.cljs index 042130d362f..8e4099fab2a 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/view.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/view.cljs @@ -216,6 +216,7 @@ [:wallet/derive-address-and-add-account {:password password :derived-from-address derived-from + :key-uid key-uid :derivation-path @derivation-path :account-preferences preferences}]))) [derived-from])] diff --git a/src/status_im/contexts/wallet/events.cljs b/src/status_im/contexts/wallet/events.cljs index 5b751cf6d24..2220bffcd1a 100644 --- a/src/status_im/contexts/wallet/events.cljs +++ b/src/status_im/contexts/wallet/events.cljs @@ -215,13 +215,11 @@ [:dispatch [:wallet/clear-create-account]]]})) (rf/reg-event-fx :wallet/add-account - (fn [{:keys [db]} - [{:keys [password account-name emoji color type] + (fn [_ + [{:keys [key-uid password account-name emoji color type] :or {type :generated}} {:keys [public-key address path] :as _derived-account}]] - (let [lowercase-address (some-> address - (string/lower-case)) - key-uid (get-in db [:wallet :ui :create-account :selected-keypair-uid]) + (let [lowercase-address (some-> address string/lower-case) account-config {:key-uid (when (= type :generated) key-uid) :wallet false :chat false From ccd1c595ffe7be2ba5ca9aa022601a31b0a9f330 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Fri, 21 Jun 2024 13:51:26 -0600 Subject: [PATCH 09/11] Fix --- src/status_im/contexts/wallet/events.cljs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/status_im/contexts/wallet/events.cljs b/src/status_im/contexts/wallet/events.cljs index 2220bffcd1a..a1c588f2862 100644 --- a/src/status_im/contexts/wallet/events.cljs +++ b/src/status_im/contexts/wallet/events.cljs @@ -215,10 +215,9 @@ [:dispatch [:wallet/clear-create-account]]]})) (rf/reg-event-fx :wallet/add-account - (fn [_ - [{:keys [key-uid password account-name emoji color type] - :or {type :generated}} - {:keys [public-key address path] :as _derived-account}]] + (fn [_ [{:keys [key-uid password account-name emoji color type] + :or {type :generated}} + {:keys [public-key address path] :as _derived-account}]] (let [lowercase-address (some-> address string/lower-case) account-config {:key-uid (when (= type :generated) key-uid) :wallet false From 061fe7e9057cef2d5f48f505b09a9eaebb6ca37f Mon Sep 17 00:00:00 2001 From: Ulises M Date: Fri, 21 Jun 2024 13:54:50 -0600 Subject: [PATCH 10/11] Lint fix --- src/quo/components/wallet/keypair/style.cljs | 8 +++++--- src/quo/components/wallet/keypair/view.cljs | 6 +++--- .../wallet/add_account/create_account/events.cljs | 5 +++-- src/status_im/contexts/wallet/events.cljs | 10 ++++++---- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/quo/components/wallet/keypair/style.cljs b/src/quo/components/wallet/keypair/style.cljs index 73882a6d4e4..ebd63791478 100644 --- a/src/quo/components/wallet/keypair/style.cljs +++ b/src/quo/components/wallet/keypair/style.cljs @@ -10,9 +10,11 @@ :padding-bottom 8 :border-color (cond (and selected? blur?) colors/white - selected? (colors/resolve-color customization-color theme) - blur? colors/white-opa-5 - :else (colors/theme-colors colors/neutral-10 colors/neutral-80 theme))} + selected? (colors/resolve-color customization-color theme) + blur? colors/white-opa-5 + :else (colors/theme-colors colors/neutral-10 + colors/neutral-80 + theme))} container-style)) (def header-container diff --git a/src/quo/components/wallet/keypair/view.cljs b/src/quo/components/wallet/keypair/view.cljs index e5b2511ac90..72f5ec937fb 100644 --- a/src/quo/components/wallet/keypair/view.cljs +++ b/src/quo/components/wallet/keypair/view.cljs @@ -98,9 +98,9 @@ (let [theme (quo.theme/use-theme)] [rn/pressable {:style (style/container (assoc props - :selected? selected? - :container-style container-style - :theme theme)) + :selected? selected? + :container-style container-style + :theme theme)) :on-press #(when (= action :selector) (on-press)) :pointer-events :box-only} [rn/view {:style style/header-container} diff --git a/src/status_im/contexts/wallet/add_account/create_account/events.cljs b/src/status_im/contexts/wallet/add_account/create_account/events.cljs index ca87dc271d2..0c382bbbe85 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/events.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/events.cljs @@ -199,8 +199,9 @@ [derivation-path]] :on-success (fn [[derived-account]] (rf/dispatch [:wallet/add-account - (assoc account-preferences :key-uid key-uid - :password password) + (assoc account-preferences + :key-uid key-uid + :password password) derived-account])) :on-error #(log/info "Failed to get derived addresses" derived-from-address diff --git a/src/status_im/contexts/wallet/events.cljs b/src/status_im/contexts/wallet/events.cljs index a1c588f2862..8eb78a1f810 100644 --- a/src/status_im/contexts/wallet/events.cljs +++ b/src/status_im/contexts/wallet/events.cljs @@ -215,10 +215,12 @@ [:dispatch [:wallet/clear-create-account]]]})) (rf/reg-event-fx :wallet/add-account - (fn [_ [{:keys [key-uid password account-name emoji color type] - :or {type :generated}} - {:keys [public-key address path] :as _derived-account}]] - (let [lowercase-address (some-> address string/lower-case) + (fn [_ + [{:keys [key-uid password account-name emoji color type] + :or {type :generated}} + {:keys [public-key address path] :as _derived-account}]] + (let [lowercase-address (some-> address + string/lower-case) account-config {:key-uid (when (= type :generated) key-uid) :wallet false :chat false From 4c226b305480455db885f225d2c4194b94648d91 Mon Sep 17 00:00:00 2001 From: Ulises M Date: Fri, 21 Jun 2024 13:58:55 -0600 Subject: [PATCH 11/11] Improve logging --- .../contexts/wallet/add_account/create_account/events.cljs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/status_im/contexts/wallet/add_account/create_account/events.cljs b/src/status_im/contexts/wallet/add_account/create_account/events.cljs index 0c382bbbe85..dd7f56ca78d 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/events.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/events.cljs @@ -203,6 +203,6 @@ :key-uid key-uid :password password) derived-account])) - :on-error #(log/info "Failed to get derived addresses" - derived-from-address - %)}]]]})) + :on-error [:wallet/log-rpc-error + {:event :wallet/derive-address-and-add-account + :params [derived-from-address [derivation-path]]}]}]]]}))