From e45f959c2786ba33ff58b69b63d9e83a6f58f89d Mon Sep 17 00:00:00 2001 From: Michele Balistreri Date: Mon, 27 Dec 2021 11:37:31 +0300 Subject: [PATCH] support PUK and seed recovery during onboarding Signed-off-by: Michele Balistreri --- src/status_im/keycard/backup_key.cljs | 2 +- src/status_im/keycard/login.cljs | 2 +- src/status_im/keycard/recovery.cljs | 10 ++++++++-- src/status_im/multiaccounts/key_storage/core.cljs | 7 +++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/status_im/keycard/backup_key.cljs b/src/status_im/keycard/backup_key.cljs index 61e2e10301..4ca7a81bc9 100644 --- a/src/status_im/keycard/backup_key.cljs +++ b/src/status_im/keycard/backup_key.cljs @@ -16,7 +16,7 @@ (fx/merge cofx {:db (-> db (assoc-in [:keycard :creating-backup?] backup-type))} - (when-not (:multiaccounts/login db) + (when (:multiaccount db) (navigation/change-tab :profile)) (navigation/navigate-to-cofx :seed-phrase nil))) diff --git a/src/status_im/keycard/login.cljs b/src/status_im/keycard/login.cljs index 5181254d25..1cd585d871 100644 --- a/src/status_im/keycard/login.cljs +++ b/src/status_im/keycard/login.cljs @@ -66,7 +66,7 @@ :error nil :status nil)) :hide-popover nil}) - (when-not (:multiaccounts/login db) + (when (:multiaccount db) (navigation/change-tab :profile)) (when-not (:multiaccounts/login db) (if (:popover/popover db) diff --git a/src/status_im/keycard/recovery.cljs b/src/status_im/keycard/recovery.cljs index 072251938e..1c335fccae 100644 --- a/src/status_im/keycard/recovery.cljs +++ b/src/status_im/keycard/recovery.cljs @@ -217,9 +217,15 @@ :t/keycard-access-reset :t/keycard-backup-success-title)) :content (i18n/label (if (= backup-type :recovery-card) :t/keycard-can-use-with-new-passcode :t/keycard-backup-success-body))}} - (if (multiaccounts.model/logged-in? cofx) + (cond + (multiaccounts.model/logged-in? cofx) (navigation/set-stack-root :profile-stack [:my-profile :keycard-settings]) - (return-to-keycard-login)))) + + (:multiaccounts/login db) + (return-to-keycard-login) + + :else + (navigation/set-stack-root :onboarding [:get-your-keys])))) (re-frame/reg-fx ::finish-migration diff --git a/src/status_im/multiaccounts/key_storage/core.cljs b/src/status_im/multiaccounts/key_storage/core.cljs index f63740896b..88293addf7 100644 --- a/src/status_im/multiaccounts/key_storage/core.cljs +++ b/src/status_im/multiaccounts/key_storage/core.cljs @@ -109,12 +109,15 @@ types/json->clj :error string/blank? - not)] + not) + onboarding? (not (or (:multiaccounts/login db) (:multiaccount db)))] (if error? (popover/show-popover cofx {:view :custom-seed-phrase}) {::validate-seed-against-key-uid {:seed-phrase (-> db :multiaccounts/key-storage :seed-phrase) ;; Unique key-uid of the account for which we are going to move keys - :key-uid (or (-> db :multiaccounts/login :key-uid) (-> db :multiaccount :key-uid))}}))) + :key-uid (or (-> db :multiaccounts/login :key-uid) + (-> db :multiaccount :key-uid) + (and onboarding? (-> db :keycard :application-info :key-uid)))}}))) (fx/defn choose-storage-pressed {:events [::choose-storage-pressed]}