mirror of
https://github.com/status-im/status-react.git
synced 2025-02-23 16:18:32 +00:00
do not store mnemonic on recovered accounts
Signed-off-by: yenda <eric@status.im>
This commit is contained in:
parent
5c7dc2edc7
commit
a21454039b
@ -1775,7 +1775,6 @@
|
|||||||
constants/path-default-wallet-keyword
|
constants/path-default-wallet-keyword
|
||||||
{:publicKey wallet-public-key
|
{:publicKey wallet-public-key
|
||||||
:address (eip55/address->checksum wallet-address)}}
|
:address (eip55/address->checksum wallet-address)}}
|
||||||
:mnemonic ""
|
|
||||||
:address address
|
:address address
|
||||||
:public-key public-key
|
:public-key public-key
|
||||||
:keycard-instance-uid instance-uid
|
:keycard-instance-uid instance-uid
|
||||||
@ -1784,8 +1783,7 @@
|
|||||||
:keycard-paired-on paired-on
|
:keycard-paired-on paired-on
|
||||||
:chat-key whisper-private-key}
|
:chat-key whisper-private-key}
|
||||||
encryption-public-key
|
encryption-public-key
|
||||||
{:seed-backed-up? true
|
{})
|
||||||
:login? true})
|
|
||||||
(if (= flow :import)
|
(if (= flow :import)
|
||||||
(navigation/navigate-to-cofx :keycard-recovery-success nil)
|
(navigation/navigate-to-cofx :keycard-recovery-success nil)
|
||||||
(navigation/navigate-to-cofx :welcome nil))))))
|
(navigation/navigate-to-cofx :welcome nil))))))
|
||||||
|
@ -227,7 +227,7 @@
|
|||||||
keycard-pairing keycard-paired-on mnemonic public-key]
|
keycard-pairing keycard-paired-on mnemonic public-key]
|
||||||
:as multiaccount}
|
:as multiaccount}
|
||||||
password
|
password
|
||||||
{:keys [seed-backed-up? login?] :or {login? true}}]
|
{:keys [save-mnemonic? login?] :or {login? true save-mnemonic? false}}]
|
||||||
(let [[wallet-account {:keys [public-key photo-path name]} :as accounts-data] (prepare-accounts-data multiaccount)
|
(let [[wallet-account {:keys [public-key photo-path name]} :as accounts-data] (prepare-accounts-data multiaccount)
|
||||||
multiaccount-data {:name name
|
multiaccount-data {:name name
|
||||||
:address address
|
:address address
|
||||||
@ -251,9 +251,9 @@
|
|||||||
:latest-derived-path 0
|
:latest-derived-path 0
|
||||||
:signing-phrase signing-phrase
|
:signing-phrase signing-phrase
|
||||||
:installation-id (random-guid-generator)
|
:installation-id (random-guid-generator)
|
||||||
:mnemonic mnemonic
|
|
||||||
:settings constants/default-multiaccount-settings}
|
:settings constants/default-multiaccount-settings}
|
||||||
|
save-mnemonic?
|
||||||
|
(assoc :mnemonic mnemonic)
|
||||||
keycard-multiaccount?
|
keycard-multiaccount?
|
||||||
(assoc :keycard-instance-uid keycard-instance-uid
|
(assoc :keycard-instance-uid keycard-instance-uid
|
||||||
:keycard-pairing keycard-pairing
|
:keycard-pairing keycard-pairing
|
||||||
@ -270,9 +270,7 @@
|
|||||||
:networks/current-network constants/default-network
|
:networks/current-network constants/default-network
|
||||||
:networks/networks constants/default-networks)]
|
:networks/networks constants/default-networks)]
|
||||||
(fx/merge cofx
|
(fx/merge cofx
|
||||||
{:db (cond-> db
|
{:db db}
|
||||||
seed-backed-up?
|
|
||||||
(assoc-in [:multiaccount :seed-backed-up?] true))}
|
|
||||||
(if keycard-multiaccount?
|
(if keycard-multiaccount?
|
||||||
(save-account-and-login-with-keycard new-multiaccount
|
(save-account-and-login-with-keycard new-multiaccount
|
||||||
password
|
password
|
||||||
@ -361,7 +359,7 @@
|
|||||||
:derived
|
:derived
|
||||||
derived)
|
derived)
|
||||||
password
|
password
|
||||||
{:seed-backed-up? false}))
|
{:save-mnemonic? true}))
|
||||||
|
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
::store-multiaccount
|
::store-multiaccount
|
||||||
|
@ -49,7 +49,6 @@
|
|||||||
(spec/def :multiaccount/sharing-usage-data? (spec/nilable boolean?))
|
(spec/def :multiaccount/sharing-usage-data? (spec/nilable boolean?))
|
||||||
(spec/def :multiaccount/desktop-notifications? (spec/nilable boolean?))
|
(spec/def :multiaccount/desktop-notifications? (spec/nilable boolean?))
|
||||||
(spec/def :multiaccount/dev-mode? (spec/nilable boolean?))
|
(spec/def :multiaccount/dev-mode? (spec/nilable boolean?))
|
||||||
(spec/def :multiaccount/seed-backed-up? (spec/nilable boolean?))
|
|
||||||
(spec/def :multiaccount/installation-id :global/not-empty-string)
|
(spec/def :multiaccount/installation-id :global/not-empty-string)
|
||||||
(spec/def :multiaccount/wallet-set-up-passed? (spec/nilable boolean?))
|
(spec/def :multiaccount/wallet-set-up-passed? (spec/nilable boolean?))
|
||||||
(spec/def :multiaccount/hide-home-tooltip? (spec/nilable boolean?))
|
(spec/def :multiaccount/hide-home-tooltip? (spec/nilable boolean?))
|
||||||
@ -66,7 +65,7 @@
|
|||||||
:multiaccount/email :multiaccount/signed-up?
|
:multiaccount/email :multiaccount/signed-up?
|
||||||
:multiaccount/settings :multiaccount/mailserver
|
:multiaccount/settings :multiaccount/mailserver
|
||||||
:multiaccount/sharing-usage-data?
|
:multiaccount/sharing-usage-data?
|
||||||
:multiaccount/seed-backed-up? :multiaccount/mnemonic :multiaccount/desktop-notifications?
|
:multiaccount/mnemonic :multiaccount/desktop-notifications?
|
||||||
:multiaccount/chaos-mode?
|
:multiaccount/chaos-mode?
|
||||||
:multiaccount/wallet-set-up-passed? :multiaccount/last-request
|
:multiaccount/wallet-set-up-passed? :multiaccount/last-request
|
||||||
:multiaccount/hide-home-tooltip?
|
:multiaccount/hide-home-tooltip?
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
(multiaccounts.create/on-multiaccount-created cofx
|
(multiaccounts.create/on-multiaccount-created cofx
|
||||||
multiaccount
|
multiaccount
|
||||||
password
|
password
|
||||||
{:seed-backed-up? true})))))
|
{})))))
|
||||||
|
|
||||||
(fx/defn store-multiaccount
|
(fx/defn store-multiaccount
|
||||||
{:events [::recover-multiaccount-confirmed]}
|
{:events [::recover-multiaccount-confirmed]}
|
||||||
|
@ -67,8 +67,7 @@
|
|||||||
"A helper function that removes seed phrase from storage."
|
"A helper function that removes seed phrase from storage."
|
||||||
[cofx]
|
[cofx]
|
||||||
(multiaccount-update cofx
|
(multiaccount-update cofx
|
||||||
{:seed-backed-up? true
|
{:mnemonic nil}
|
||||||
:mnemonic nil}
|
|
||||||
{}))
|
{}))
|
||||||
|
|
||||||
(fx/defn update-settings
|
(fx/defn update-settings
|
||||||
|
@ -1020,8 +1020,8 @@
|
|||||||
(re-frame/reg-sub
|
(re-frame/reg-sub
|
||||||
:get-profile-unread-messages-number
|
:get-profile-unread-messages-number
|
||||||
:<- [:multiaccount]
|
:<- [:multiaccount]
|
||||||
(fn [{:keys [seed-backed-up? mnemonic]}]
|
(fn [{:keys [mnemonic]}]
|
||||||
(if (or seed-backed-up? (string/blank? mnemonic)) 0 1)))
|
(if mnemonic 1 0)))
|
||||||
|
|
||||||
;;WALLET ==============================================================================================================
|
;;WALLET ==============================================================================================================
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@
|
|||||||
(i18n/label :t/advanced-settings)]
|
(i18n/label :t/advanced-settings)]
|
||||||
[vector-icons/icon :main-icons/next {:style {:tint-color colors/gray}}]]])
|
[vector-icons/icon :main-icons/next {:style {:tint-color colors/gray}}]]])
|
||||||
|
|
||||||
(views/defview profile [{:keys [seed-backed-up? mnemonic] :as user}]
|
(views/defview profile [{:keys [mnemonic] :as user}]
|
||||||
(views/letsubs [current-view-id [:view-id]
|
(views/letsubs [current-view-id [:view-id]
|
||||||
editing? [:my-profile/editing?]] ;; TODO janherich: refactor my-profile, unnecessary complicated structure in db (could be just `:staged-name`/`:editing?` fields in multiaccount map) and horrible way to access it woth `:get`/`:set` subs/events
|
editing? [:my-profile/editing?]] ;; TODO janherich: refactor my-profile, unnecessary complicated structure in db (could be just `:staged-name`/`:editing?` fields in multiaccount map) and horrible way to access it woth `:get`/`:set` subs/events
|
||||||
(let [adv-settings-open? (= current-view-id :advanced-settings)
|
(let [adv-settings-open? (= current-view-id :advanced-settings)
|
||||||
@ -288,7 +288,7 @@
|
|||||||
installations-open? (= current-view-id :installations)
|
installations-open? (= current-view-id :installations)
|
||||||
backup-recovery-phrase-open? (= current-view-id :backup-recovery-phrase)
|
backup-recovery-phrase-open? (= current-view-id :backup-recovery-phrase)
|
||||||
notifications? (get-in user [:desktop-notifications?])
|
notifications? (get-in user [:desktop-notifications?])
|
||||||
show-backup-seed? (and (not seed-backed-up?) (not (string/blank? mnemonic)))]
|
show-backup-seed? (not mnemonic)]
|
||||||
[react/view
|
[react/view
|
||||||
[react/view {:style styles/profile-edit}
|
[react/view {:style styles/profile-edit}
|
||||||
[react/touchable-highlight {:on-press #(re-frame/dispatch (if editing?
|
[react/touchable-highlight {:on-press #(re-frame/dispatch (if editing?
|
||||||
|
@ -11,21 +11,22 @@
|
|||||||
[status-im.multiaccounts.biometric.core :as biometric])
|
[status-im.multiaccounts.biometric.core :as biometric])
|
||||||
(:require-macros [status-im.utils.views :as views]))
|
(:require-macros [status-im.utils.views :as views]))
|
||||||
|
|
||||||
(defn- list-data [show-backup-seed? settings supported-biometric-auth biometric-auth? keycard?]
|
(defn- list-data [mnemonic settings supported-biometric-auth biometric-auth? keycard?]
|
||||||
[{:type :section-header
|
[{:type :section-header
|
||||||
:title :t/security
|
:title :t/security
|
||||||
:container-margin-top 6}
|
:container-margin-top 6}
|
||||||
{:type :small
|
{:type :small
|
||||||
:title :t/back-up-seed-phrase
|
:title :t/back-up-seed-phrase
|
||||||
:accessibility-label :back-up-recovery-phrase-button
|
:accessibility-label :back-up-recovery-phrase-button
|
||||||
:disabled? (not show-backup-seed?)
|
:disabled? (not mnemonic)
|
||||||
;; TODO - remove container bottom margin
|
;; TODO - remove container bottom margin
|
||||||
;; when items below are implemented
|
;; when items below are implemented
|
||||||
:container-margin-bottom 8
|
:container-margin-bottom 8
|
||||||
:on-press
|
:on-press
|
||||||
#(re-frame/dispatch [:navigate-to :backup-seed])
|
#(re-frame/dispatch [:navigate-to :backup-seed])
|
||||||
:accessories
|
:accessories
|
||||||
(when show-backup-seed? [[components.common/counter {:size 22} 1]
|
(when mnemonic
|
||||||
|
[[components.common/counter {:size 22} 1]
|
||||||
:chevron])}
|
:chevron])}
|
||||||
{:type :small
|
{:type :small
|
||||||
:title (str (i18n/label :t/lock-app-with) " " (biometric/get-label supported-biometric-auth))
|
:title (str (i18n/label :t/lock-app-with) " " (biometric/get-label supported-biometric-auth))
|
||||||
@ -81,18 +82,16 @@
|
|||||||
:theme :action-destructive})])
|
:theme :action-destructive})])
|
||||||
|
|
||||||
(views/defview privacy-and-security []
|
(views/defview privacy-and-security []
|
||||||
(views/letsubs [{:keys [seed-backed-up? mnemonic]} [:multiaccount]
|
(views/letsubs [{:keys [mnemonic]} [:multiaccount]
|
||||||
settings [:multiaccount-settings]
|
settings [:multiaccount-settings]
|
||||||
supported-biometric-auth [:supported-biometric-auth]
|
supported-biometric-auth [:supported-biometric-auth]
|
||||||
auth-method [:auth-method]
|
auth-method [:auth-method]
|
||||||
keycard-multiaccount? [:keycard-multiaccount?]]
|
keycard-multiaccount? [:keycard-multiaccount?]]
|
||||||
(let [show-backup-seed? (and (not seed-backed-up?)
|
|
||||||
(not (string/blank? mnemonic)))]
|
|
||||||
[react/view {:flex 1 :background-color colors/white}
|
[react/view {:flex 1 :background-color colors/white}
|
||||||
[toolbar/simple-toolbar
|
[toolbar/simple-toolbar
|
||||||
(i18n/label :t/privacy-and-security)]
|
(i18n/label :t/privacy-and-security)]
|
||||||
[list/flat-list
|
[list/flat-list
|
||||||
{:data (list-data show-backup-seed? settings supported-biometric-auth
|
{:data (list-data mnemonic settings supported-biometric-auth
|
||||||
(= auth-method "biometric") keycard-multiaccount?)
|
(= auth-method "biometric") keycard-multiaccount?)
|
||||||
:key-fn (fn [_ i] (str i))
|
:key-fn (fn [_ i] (str i))
|
||||||
:render-fn list/flat-list-generic-render-fn}]])))
|
:render-fn list/flat-list-generic-render-fn}]]))
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
|
|
||||||
(defn- flat-list-content
|
(defn- flat-list-content
|
||||||
[preferred-name registrar tribute-to-talk
|
[preferred-name registrar tribute-to-talk
|
||||||
active-contacts-count show-backup-seed?
|
active-contacts-count mnemonic
|
||||||
keycard-account? notifications-enabled?]
|
keycard-account? notifications-enabled?]
|
||||||
[(cond-> {:title (or (when registrar preferred-name)
|
[(cond-> {:title (or (when registrar preferred-name)
|
||||||
:t/ens-usernames)
|
:t/ens-usernames)
|
||||||
@ -147,7 +147,7 @@
|
|||||||
:title :t/privacy-and-security
|
:title :t/privacy-and-security
|
||||||
:accessibility-label :privacy-and-security-settings-button
|
:accessibility-label :privacy-and-security-settings-button
|
||||||
:accessories
|
:accessories
|
||||||
[(when show-backup-seed?
|
[(when mnemonic
|
||||||
[components.common/counter {:size 22} 1]) :chevron]
|
[components.common/counter {:size 22} 1]) :chevron]
|
||||||
:on-press #(re-frame/dispatch [:navigate-to :privacy-and-security])}
|
:on-press #(re-frame/dispatch [:navigate-to :privacy-and-security])}
|
||||||
(when (and platform/android?
|
(when (and platform/android?
|
||||||
@ -216,7 +216,6 @@
|
|||||||
(defn content-with-header [list-ref scroll-y]
|
(defn content-with-header [list-ref scroll-y]
|
||||||
(let [{:keys [public-key
|
(let [{:keys [public-key
|
||||||
preferred-name
|
preferred-name
|
||||||
seed-backed-up?
|
|
||||||
mnemonic
|
mnemonic
|
||||||
keycard-pairing
|
keycard-pairing
|
||||||
address
|
address
|
||||||
@ -225,14 +224,12 @@
|
|||||||
active-contacts-count @(re-frame/subscribe [:contacts/active-count])
|
active-contacts-count @(re-frame/subscribe [:contacts/active-count])
|
||||||
tribute-to-talk @(re-frame/subscribe [:tribute-to-talk/profile])
|
tribute-to-talk @(re-frame/subscribe [:tribute-to-talk/profile])
|
||||||
registrar @(re-frame/subscribe [:ens.stateofus/registrar])
|
registrar @(re-frame/subscribe [:ens.stateofus/registrar])
|
||||||
photo-added? @(re-frame/subscribe [:profile/photo-added?])
|
photo-added? @(re-frame/subscribe [:profile/photo-added?])]
|
||||||
show-backup-seed? (and (not seed-backed-up?)
|
|
||||||
(not (string/blank? mnemonic)))]
|
|
||||||
[large-toolbar/flat-list-with-header-handler
|
[large-toolbar/flat-list-with-header-handler
|
||||||
(header multiaccount photo-added?)
|
(header multiaccount photo-added?)
|
||||||
(flat-list-content
|
(flat-list-content
|
||||||
preferred-name registrar tribute-to-talk
|
preferred-name registrar tribute-to-talk
|
||||||
active-contacts-count show-backup-seed?
|
active-contacts-count mnemonic
|
||||||
keycard-pairing notifications-enabled?)
|
keycard-pairing notifications-enabled?)
|
||||||
list-ref
|
list-ref
|
||||||
scroll-y]))
|
scroll-y]))
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
(re-frame/dispatch [:bottom-sheet/hide-sheet])
|
(re-frame/dispatch [:bottom-sheet/hide-sheet])
|
||||||
(re-frame/dispatch event))
|
(re-frame/dispatch event))
|
||||||
|
|
||||||
(defn accounts-options [seed-backed-up?]
|
(defn accounts-options [mnemonic]
|
||||||
(fn []
|
(fn []
|
||||||
[react/view
|
[react/view
|
||||||
[list-item/list-item
|
[list-item/list-item
|
||||||
@ -27,7 +27,7 @@
|
|||||||
:title :t/view-signing
|
:title :t/view-signing
|
||||||
:icon :main-icons/info
|
:icon :main-icons/info
|
||||||
:on-press #(hide-sheet-and-dispatch [:show-popover {:view :signing-phrase}])}]
|
:on-press #(hide-sheet-and-dispatch [:show-popover {:view :signing-phrase}])}]
|
||||||
(when-not seed-backed-up?
|
(when mnemonic
|
||||||
[list-item/list-item
|
[list-item/list-item
|
||||||
{:theme :action-destructive
|
{:theme :action-destructive
|
||||||
:title :t/wallet-backup-recovery-title
|
:title :t/wallet-backup-recovery-title
|
||||||
|
@ -113,11 +113,11 @@
|
|||||||
50)}])))
|
50)}])))
|
||||||
|
|
||||||
(views/defview accounts-options []
|
(views/defview accounts-options []
|
||||||
(views/letsubs [{:keys [seed-backed-up?]} [:multiaccount]
|
(views/letsubs [{:keys [mnemonic]} [:multiaccount]
|
||||||
empty-balances? [:empty-balances?]]
|
empty-balances? [:empty-balances?]]
|
||||||
[react/view {:flex-direction :row :align-items :center}
|
[react/view {:flex-direction :row :align-items :center}
|
||||||
[react/view {:flex 1 :padding-left 16}
|
[react/view {:flex 1 :padding-left 16}
|
||||||
(when (and (not seed-backed-up?)
|
(when (and mnemonic
|
||||||
(not empty-balances?))
|
(not empty-balances?))
|
||||||
[react/touchable-highlight
|
[react/touchable-highlight
|
||||||
{:on-press #(re-frame/dispatch [:navigate-to :backup-seed])}
|
{:on-press #(re-frame/dispatch [:navigate-to :backup-seed])}
|
||||||
@ -139,8 +139,8 @@
|
|||||||
[icons/icon :main-icons/qr {:accessibility-label :accounts-qr-code}]]]
|
[icons/icon :main-icons/qr {:accessibility-label :accounts-qr-code}]]]
|
||||||
[react/touchable-highlight
|
[react/touchable-highlight
|
||||||
{:on-press #(re-frame/dispatch [:bottom-sheet/show-sheet
|
{:on-press #(re-frame/dispatch [:bottom-sheet/show-sheet
|
||||||
{:content (sheets/accounts-options seed-backed-up?)
|
{:content (sheets/accounts-options mnemonic)
|
||||||
:content-height (if seed-backed-up? 190 250)}])}
|
:content-height (if mnemonic 250 190)}])}
|
||||||
[react/view {:height toolbar.styles/toolbar-height
|
[react/view {:height toolbar.styles/toolbar-height
|
||||||
:width toolbar.styles/toolbar-height :align-items :center
|
:width toolbar.styles/toolbar-height :align-items :center
|
||||||
:justify-content :center}
|
:justify-content :center}
|
||||||
|
@ -17,4 +17,4 @@
|
|||||||
(let [efx (multiaccounts.update/clean-seed-phrase {:db {:multiaccount {:mnemonic "lalalala"}}})
|
(let [efx (multiaccounts.update/clean-seed-phrase {:db {:multiaccount {:mnemonic "lalalala"}}})
|
||||||
json-rpc (into #{} (map :method (::json-rpc/call efx)))]
|
json-rpc (into #{} (map :method (::json-rpc/call efx)))]
|
||||||
(is (json-rpc "settings_saveConfig"))
|
(is (json-rpc "settings_saveConfig"))
|
||||||
(is (= (get-in efx [:db :multiaccount]) {:seed-backed-up? true, :mnemonic nil}))))
|
(is (= (get-in efx [:db :multiaccount]) {:mnemonic nil}))))
|
||||||
|
@ -140,7 +140,6 @@
|
|||||||
:URL "https://poa.infura.io"}}
|
:URL "https://poa.infura.io"}}
|
||||||
:rpc-url nil}}
|
:rpc-url nil}}
|
||||||
:photo-path "data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX////YsYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPGFwxAAABAHRSTlP//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmfXxgAABnNJREFUeNoBaAaX+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAAAAAAEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEAAAAAAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQAAAAABAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAAAAAAEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAloYA4a9rBHIAAAAASUVORK5CYII="
|
:photo-path "data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX////YsYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPGFwxAAABAHRSTlP//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmfXxgAABnNJREFUeNoBaAaX+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAAAAAAEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEAAAAAAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQAAAAABAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAAAAAAEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAloYA4a9rBHIAAAAASUVORK5CYII="
|
||||||
:seed-backed-up? false
|
|
||||||
:network "mainnet_rpc"
|
:network "mainnet_rpc"
|
||||||
:wallet-set-up-passed? false
|
:wallet-set-up-passed? false
|
||||||
:public-key "0x04173f7cdea0076a7998abb674cc79fe61337c42db77043c01d5b0f3e3ac1e5a45bca0c93bb9f3c3d38b7cc9a7337cd64f9f9b2114fe4bbdfe1ae2633ba14d8c9c"
|
:public-key "0x04173f7cdea0076a7998abb674cc79fe61337c42db77043c01d5b0f3e3ac1e5a45bca0c93bb9f3c3d38b7cc9a7337cd64f9f9b2114fe4bbdfe1ae2633ba14d8c9c"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user