Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8408b4fff |
@@ -40,23 +40,6 @@
|
|||||||
config
|
config
|
||||||
#(callback (types/json->clj %))))
|
#(callback (types/json->clj %))))
|
||||||
|
|
||||||
(defn save-account-and-login
|
|
||||||
"NOTE: beware, the password has to be sha3 hashed"
|
|
||||||
[key-uid multiaccount-data hashed-password settings config accounts-data]
|
|
||||||
(log/debug "[native-module] save-account-and-login"
|
|
||||||
"multiaccount-data"
|
|
||||||
multiaccount-data)
|
|
||||||
(clear-web-data)
|
|
||||||
(init-keystore
|
|
||||||
key-uid
|
|
||||||
#(.saveAccountAndLogin
|
|
||||||
^js (status)
|
|
||||||
multiaccount-data
|
|
||||||
hashed-password
|
|
||||||
settings
|
|
||||||
config
|
|
||||||
accounts-data)))
|
|
||||||
|
|
||||||
(defn save-multiaccount-and-login-with-keycard
|
(defn save-multiaccount-and-login-with-keycard
|
||||||
"NOTE: chat-key is a whisper private key sent from keycard"
|
"NOTE: chat-key is a whisper private key sent from keycard"
|
||||||
[key-uid multiaccount-data password settings config accounts-data chat-key]
|
[key-uid multiaccount-data password settings config accounts-data chat-key]
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.multiaccounts.update.core :as multiaccounts.update]
|
[status-im.multiaccounts.update.core :as multiaccounts.update]
|
||||||
[status-im.node.core :as node]
|
[status-im.node.core :as node]
|
||||||
[status-im2.config :as config]
|
|
||||||
[status-im2.constants :as constants]
|
[status-im2.constants :as constants]
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
@@ -78,10 +77,9 @@
|
|||||||
[{:keys [db now] :as cofx} fleet]
|
[{:keys [db now] :as cofx} fleet]
|
||||||
(let [old-fleet (get-in db [:profile/profile :fleet])]
|
(let [old-fleet (get-in db [:profile/profile :fleet])]
|
||||||
(when (not= fleet old-fleet)
|
(when (not= fleet old-fleet)
|
||||||
(rf/merge
|
(multiaccounts.update/multiaccount-update
|
||||||
cofx
|
cofx
|
||||||
(multiaccounts.update/multiaccount-update :fleet fleet {})
|
:fleet
|
||||||
(node/prepare-new-config
|
fleet
|
||||||
{:on-success
|
{:on-success
|
||||||
#(re-frame/dispatch
|
#(re-frame/dispatch [:logout])}))))
|
||||||
[:multiaccounts.update.callback/save-settings-success])})))))
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
[taoensso.timbre :as log]
|
[taoensso.timbre :as log]
|
||||||
[utils.address :as address]
|
[utils.address :as address]
|
||||||
[utils.datetime :as datetime]
|
[utils.datetime :as datetime]
|
||||||
[utils.ethereum.eip.eip55 :as eip55]
|
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]
|
[utils.re-frame :as rf]
|
||||||
[utils.security.core :as security]))
|
[utils.security.core :as security]))
|
||||||
@@ -182,26 +181,28 @@
|
|||||||
{:db (-> db
|
{:db (-> db
|
||||||
(assoc-in [:keycard :setup-step] nil)
|
(assoc-in [:keycard :setup-step] nil)
|
||||||
(dissoc :intro-wizard))}
|
(dissoc :intro-wizard))}
|
||||||
(multiaccounts.create/on-multiaccount-created
|
;; NOTE: Disabling as keycard not functional and this needs to be moved to
|
||||||
{:recovered (or recovered (get-in db [:intro-wizard :recovering?]))
|
;; status-go
|
||||||
:derived {constants/path-wallet-root-keyword
|
#_(multiaccounts.create/on-multiaccount-created
|
||||||
{:public-key wallet-root-public-key
|
{:recovered (or recovered (get-in db [:intro-wizard :recovering?]))
|
||||||
:address (eip55/address->checksum wallet-root-address)}
|
:derived {constants/path-wallet-root-keyword
|
||||||
constants/path-whisper-keyword
|
{:public-key wallet-root-public-key
|
||||||
{:public-key whisper-public-key
|
:address (eip55/address->checksum wallet-root-address)}
|
||||||
:address (eip55/address->checksum whisper-address)}
|
constants/path-whisper-keyword
|
||||||
constants/path-default-wallet-keyword
|
{:public-key whisper-public-key
|
||||||
{:public-key wallet-public-key
|
:address (eip55/address->checksum whisper-address)}
|
||||||
:address (eip55/address->checksum wallet-address)}}
|
constants/path-default-wallet-keyword
|
||||||
:address address
|
{:public-key wallet-public-key
|
||||||
:public-key public-key
|
:address (eip55/address->checksum wallet-address)}}
|
||||||
:keycard-instance-uid instance-uid
|
:address address
|
||||||
:key-uid (address/normalized-hex key-uid)
|
:public-key public-key
|
||||||
:keycard-pairing pairing
|
:keycard-instance-uid instance-uid
|
||||||
:keycard-paired-on paired-on
|
:key-uid (address/normalized-hex key-uid)
|
||||||
:chat-key whisper-private-key}
|
:keycard-pairing pairing
|
||||||
encryption-public-key
|
:keycard-paired-on paired-on
|
||||||
{}))))
|
:chat-key whisper-private-key}
|
||||||
|
encryption-public-key
|
||||||
|
{}))))
|
||||||
|
|
||||||
(rf/defn return-to-keycard-login
|
(rf/defn return-to-keycard-login
|
||||||
[{:keys [db] :as cofx}]
|
[{:keys [db] :as cofx}]
|
||||||
|
|||||||
@@ -489,14 +489,15 @@
|
|||||||
(log/warn "sign-typed-data not implemented" args))
|
(log/warn "sign-typed-data not implemented" args))
|
||||||
|
|
||||||
(defn save-multiaccount-and-login
|
(defn save-multiaccount-and-login
|
||||||
[{:keys [key-uid multiaccount-data password settings node-config accounts-data]}]
|
[_]
|
||||||
(native-module/save-account-and-login
|
;; NOTE: disabling as we don't support keycard for now and it's using an outdated endpoint
|
||||||
key-uid
|
#_(native-module/save-account-and-login
|
||||||
(types/clj->json multiaccount-data)
|
key-uid
|
||||||
password
|
(types/clj->json multiaccount-data)
|
||||||
(types/clj->json settings)
|
password
|
||||||
node-config
|
(types/clj->json settings)
|
||||||
(types/clj->json accounts-data)))
|
node-config
|
||||||
|
(types/clj->json accounts-data)))
|
||||||
|
|
||||||
(defn login
|
(defn login
|
||||||
[{:keys [key-uid multiaccount-data password]}]
|
[{:keys [key-uid multiaccount-data password]}]
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
(:require
|
(:require
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.multiaccounts.update.core :as multiaccounts.update]
|
[status-im.multiaccounts.update.core :as multiaccounts.update]
|
||||||
[status-im.node.core :as node]
|
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
@@ -11,13 +10,11 @@
|
|||||||
[{:keys [db now] :as cofx} log-level]
|
[{:keys [db now] :as cofx} log-level]
|
||||||
(let [old-log-level (get-in db [:profile/profile :log-level])]
|
(let [old-log-level (get-in db [:profile/profile :log-level])]
|
||||||
(when (not= old-log-level log-level)
|
(when (not= old-log-level log-level)
|
||||||
(rf/merge cofx
|
(multiaccounts.update/multiaccount-update
|
||||||
(multiaccounts.update/multiaccount-update
|
cofx
|
||||||
:log-level
|
:log-level
|
||||||
log-level
|
log-level
|
||||||
{})
|
{:on-success #(re-frame/dispatch [:logout])}))))
|
||||||
(node/prepare-new-config
|
|
||||||
{:on-success #(re-frame/dispatch [:logout])})))))
|
|
||||||
|
|
||||||
(rf/defn show-change-log-level-confirmation
|
(rf/defn show-change-log-level-confirmation
|
||||||
{:events [:log-level.ui/log-level-selected]}
|
{:events [:log-level.ui/log-level-selected]}
|
||||||
|
|||||||
@@ -2,17 +2,10 @@
|
|||||||
(:require
|
(:require
|
||||||
[native-module.core :as native-module]
|
[native-module.core :as native-module]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.data-store.settings :as data-store.settings]
|
|
||||||
[status-im.node.core :as node]
|
|
||||||
[status-im.ui.components.colors :as colors]
|
|
||||||
[status-im.utils.deprecated-types :as types]
|
[status-im.utils.deprecated-types :as types]
|
||||||
[status-im.utils.signing-phrase.core :as signing-phrase]
|
[status-im.utils.signing-phrase.core :as signing-phrase]
|
||||||
[status-im2.config :as config]
|
|
||||||
[status-im2.constants :as constants]
|
[status-im2.constants :as constants]
|
||||||
[utils.ethereum.eip.eip55 :as eip55]
|
[utils.re-frame :as rf]))
|
||||||
[utils.i18n :as i18n]
|
|
||||||
[utils.re-frame :as rf]
|
|
||||||
[utils.security.core :as security]))
|
|
||||||
|
|
||||||
(defn normalize-derived-data-keys
|
(defn normalize-derived-data-keys
|
||||||
[derived-data]
|
[derived-data]
|
||||||
@@ -82,134 +75,3 @@
|
|||||||
(rf/defn save-multiaccount-and-login-with-keycard
|
(rf/defn save-multiaccount-and-login-with-keycard
|
||||||
[_ args]
|
[_ args]
|
||||||
{:keycard/save-multiaccount-and-login args})
|
{:keycard/save-multiaccount-and-login args})
|
||||||
|
|
||||||
(re-frame/reg-fx
|
|
||||||
::save-account-and-login
|
|
||||||
(fn [[key-uid multiaccount-data hashed-password settings config accounts-data]]
|
|
||||||
(native-module/save-account-and-login
|
|
||||||
key-uid
|
|
||||||
multiaccount-data
|
|
||||||
hashed-password
|
|
||||||
settings
|
|
||||||
config
|
|
||||||
accounts-data)))
|
|
||||||
|
|
||||||
(rf/defn save-account-and-login
|
|
||||||
[_ key-uid multiaccount-data password settings node-config accounts-data]
|
|
||||||
{::save-account-and-login [key-uid
|
|
||||||
(types/clj->json multiaccount-data)
|
|
||||||
password
|
|
||||||
(types/clj->json settings)
|
|
||||||
node-config
|
|
||||||
(types/clj->json accounts-data)]})
|
|
||||||
|
|
||||||
(defn prepare-accounts-data
|
|
||||||
[multiaccount]
|
|
||||||
[(let [{:keys [public-key address]}
|
|
||||||
(get-in multiaccount [:derived constants/path-default-wallet-keyword])]
|
|
||||||
{:public-key public-key
|
|
||||||
:address (eip55/address->checksum address)
|
|
||||||
:color colors/blue-persist
|
|
||||||
:wallet true
|
|
||||||
:path constants/path-default-wallet
|
|
||||||
:name (i18n/label :t/main-account)})
|
|
||||||
(let [{:keys [compressed-key public-key address name]}
|
|
||||||
(get-in multiaccount [:derived constants/path-whisper-keyword])]
|
|
||||||
{:public-key public-key
|
|
||||||
:compressed-key compressed-key
|
|
||||||
:address (eip55/address->checksum address)
|
|
||||||
:name name
|
|
||||||
:path constants/path-whisper
|
|
||||||
:chat true})])
|
|
||||||
|
|
||||||
(rf/defn on-multiaccount-created
|
|
||||||
[{:keys [signing-phrase random-guid-generator db] :as cofx}
|
|
||||||
{:keys [address chat-key keycard-instance-uid key-uid
|
|
||||||
keycard-pairing keycard-paired-on mnemonic recovered]
|
|
||||||
:as multiaccount}
|
|
||||||
password
|
|
||||||
{:keys [save-mnemonic? login?] :or {login? true save-mnemonic? false}}]
|
|
||||||
(let [[wallet-account
|
|
||||||
{:keys [public-key
|
|
||||||
compressed-key
|
|
||||||
name]} :as accounts-data]
|
|
||||||
(prepare-accounts-data
|
|
||||||
multiaccount)
|
|
||||||
multiaccount-data {:name name
|
|
||||||
:address address
|
|
||||||
:key-uid key-uid
|
|
||||||
:keycard-pairing keycard-pairing}
|
|
||||||
keycard-multiaccount? (boolean keycard-pairing)
|
|
||||||
eip1581-address (get-in multiaccount
|
|
||||||
[:derived
|
|
||||||
constants/path-eip1581-keyword
|
|
||||||
:address])
|
|
||||||
new-multiaccount
|
|
||||||
(cond->
|
|
||||||
(merge
|
|
||||||
{;; address of the master key
|
|
||||||
:address address
|
|
||||||
;; sha256 of master public key
|
|
||||||
:key-uid key-uid
|
|
||||||
;; The address from which we derive any wallet
|
|
||||||
:wallet-root-address
|
|
||||||
(get-in multiaccount
|
|
||||||
[:derived
|
|
||||||
constants/path-wallet-root-keyword
|
|
||||||
:address])
|
|
||||||
:name name
|
|
||||||
;; public key of the chat account
|
|
||||||
:public-key public-key
|
|
||||||
;; compressed key of the chat account
|
|
||||||
:compressed-key compressed-key
|
|
||||||
;; default address for Dapps
|
|
||||||
:dapps-address (:address wallet-account)
|
|
||||||
:latest-derived-path 0
|
|
||||||
:signing-phrase signing-phrase
|
|
||||||
:backup-enabled? true
|
|
||||||
:installation-id (random-guid-generator)
|
|
||||||
;; default mailserver (history node) setting
|
|
||||||
:use-mailservers? true
|
|
||||||
:recovered recovered}
|
|
||||||
config/default-multiaccount)
|
|
||||||
;; The address from which we derive any chat
|
|
||||||
;; account/encryption keys
|
|
||||||
eip1581-address
|
|
||||||
(assoc :eip1581-address eip1581-address)
|
|
||||||
save-mnemonic?
|
|
||||||
(assoc :mnemonic mnemonic)
|
|
||||||
keycard-multiaccount?
|
|
||||||
(assoc :keycard-instance-uid keycard-instance-uid
|
|
||||||
:keycard-pairing keycard-pairing
|
|
||||||
:keycard-paired-on keycard-paired-on))
|
|
||||||
db (assoc db
|
|
||||||
:profile/login {:key-uid key-uid
|
|
||||||
:name name
|
|
||||||
:password password
|
|
||||||
:creating? true
|
|
||||||
:processing true}
|
|
||||||
:profile/profile new-multiaccount
|
|
||||||
:profile/wallet-accounts [wallet-account]
|
|
||||||
:networks/current-network config/default-network
|
|
||||||
:networks/networks (data-store.settings/rpc->networks config/default-networks))
|
|
||||||
settings (assoc new-multiaccount
|
|
||||||
:networks/current-network config/default-network
|
|
||||||
:networks/networks config/default-networks)]
|
|
||||||
(rf/merge cofx
|
|
||||||
{:db db}
|
|
||||||
(if keycard-multiaccount?
|
|
||||||
(save-multiaccount-and-login-with-keycard
|
|
||||||
{:key-uid key-uid
|
|
||||||
:multiaccount-data multiaccount-data
|
|
||||||
:password password
|
|
||||||
:settings settings
|
|
||||||
:node-config (node/get-new-config db)
|
|
||||||
:accounts-data accounts-data
|
|
||||||
:chat-key chat-key})
|
|
||||||
(save-account-and-login
|
|
||||||
key-uid
|
|
||||||
multiaccount-data
|
|
||||||
(native-module/sha3 (security/safe-unmask-data password))
|
|
||||||
settings
|
|
||||||
(node/get-new-config db)
|
|
||||||
accounts-data)))))
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
(:require
|
(:require
|
||||||
[clojure.string :as string]
|
[clojure.string :as string]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.node.core :as node]
|
|
||||||
[status-im2.navigation.events :as navigation]
|
[status-im2.navigation.events :as navigation]
|
||||||
[utils.ethereum.chain :as chain]
|
[utils.ethereum.chain :as chain]
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
@@ -117,12 +116,10 @@
|
|||||||
(rf/defn save-network-settings
|
(rf/defn save-network-settings
|
||||||
{:events [::save-network-settings-pressed]}
|
{:events [::save-network-settings-pressed]}
|
||||||
[{:keys [db] :as cofx} network]
|
[{:keys [db] :as cofx} network]
|
||||||
(rf/merge cofx
|
{:db (assoc db :networks/current-network network)
|
||||||
{:db (assoc db :networks/current-network network)
|
:json-rpc/call [{:method "settings_saveSetting"
|
||||||
:json-rpc/call [{:method "settings_saveSetting"
|
:params [:networks/current-network network]
|
||||||
:params [:networks/current-network network]
|
:on-success #(re-frame/dispatch [:logout])}]})
|
||||||
:on-success #()}]}
|
|
||||||
(node/prepare-new-config {:on-success #(re-frame/dispatch [:logout])})))
|
|
||||||
|
|
||||||
(rf/defn remove-network
|
(rf/defn remove-network
|
||||||
{:events [::remove-network-confirmed]}
|
{:events [::remove-network-confirmed]}
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
(ns status-im.node.core
|
(ns status-im.node.core
|
||||||
(:require
|
(:require
|
||||||
[clojure.string :as string]
|
[clojure.string :as string]
|
||||||
[native-module.core :as native-module]
|
|
||||||
[re-frame.core :as re-frame]
|
|
||||||
[react-native.platform :as platform]
|
[react-native.platform :as platform]
|
||||||
[status-im.utils.deprecated-types :as types]
|
[status-im.utils.deprecated-types :as types]
|
||||||
[status-im2.config :as config]
|
[status-im2.config :as config]))
|
||||||
[utils.re-frame :as rf]))
|
|
||||||
|
|
||||||
(defn- add-custom-bootnodes
|
(defn- add-custom-bootnodes
|
||||||
[config network all-bootnodes]
|
[config network all-bootnodes]
|
||||||
@@ -196,32 +193,4 @@
|
|||||||
:always
|
:always
|
||||||
(add-log-level log-level))))
|
(add-log-level log-level))))
|
||||||
|
|
||||||
(defn get-new-config
|
|
||||||
[db]
|
|
||||||
(types/clj->json (get-multiaccount-node-config db)))
|
|
||||||
|
|
||||||
(rf/defn save-new-config
|
|
||||||
"Saves a new status-go config for the current account
|
|
||||||
This RPC method is the only way to change the node config of an account.
|
|
||||||
NOTE: it is better used indirectly through `prepare-new-config`,
|
|
||||||
which will take care of building up the proper config based on settings in
|
|
||||||
app-db"
|
|
||||||
{:events [::save-new-config]}
|
|
||||||
[_ config {:keys [on-success]}]
|
|
||||||
{:json-rpc/call [{:method "settings_saveSetting"
|
|
||||||
:params [:node-config config]
|
|
||||||
:on-success on-success}]})
|
|
||||||
|
|
||||||
(rf/defn prepare-new-config
|
|
||||||
"Use this function to apply settings to the current account node config"
|
|
||||||
[{:keys [db]} {:keys [on-success]}]
|
|
||||||
(let [key-uid (get-in db [:profile/profile :key-uid])]
|
|
||||||
{::prepare-new-config [key-uid
|
|
||||||
(get-new-config db)
|
|
||||||
#(re-frame/dispatch
|
|
||||||
[::save-new-config % {:on-success on-success}])]}))
|
|
||||||
|
|
||||||
(re-frame/reg-fx
|
|
||||||
::prepare-new-config
|
|
||||||
(fn [[key-uid config callback]]
|
|
||||||
(native-module/prepare-dir-and-update-config key-uid config callback)))
|
|
||||||
|
|||||||
@@ -15,9 +15,8 @@
|
|||||||
(defn- normal-mode-settings-data
|
(defn- normal-mode-settings-data
|
||||||
[{:keys [network-name
|
[{:keys [network-name
|
||||||
current-log-level
|
current-log-level
|
||||||
waku-bloom-filter-mode
|
light-client-enabled?
|
||||||
transactions-management-enabled?
|
transactions-management-enabled?
|
||||||
wakuv2-flag
|
|
||||||
current-fleet
|
current-fleet
|
||||||
webview-debug]}]
|
webview-debug]}]
|
||||||
(keep
|
(keep
|
||||||
@@ -54,19 +53,12 @@
|
|||||||
:accessory :text
|
:accessory :text
|
||||||
:accessory-text current-fleet
|
:accessory-text current-fleet
|
||||||
:chevron true}
|
:chevron true}
|
||||||
(if wakuv2-flag
|
{:size :small
|
||||||
{:size :small
|
:title (i18n/label :t/wakuv2-settings)
|
||||||
:title (i18n/label :t/wakuv2-settings)
|
:accessibility-label :wakuv2-settings-button
|
||||||
:accessibility-label :wakuv2-settings-button
|
:on-press
|
||||||
:on-press
|
#(re-frame/dispatch [:wakuv2.ui/enter-settings-pressed])
|
||||||
#(re-frame/dispatch [:wakuv2.ui/enter-settings-pressed])
|
:chevron true}
|
||||||
:chevron true}
|
|
||||||
{:size :small
|
|
||||||
:title (i18n/label :t/bootnodes)
|
|
||||||
:accessibility-label :bootnodes-settings-button
|
|
||||||
:on-press
|
|
||||||
#(re-frame/dispatch [:navigate-to :bootnodes-settings])
|
|
||||||
:chevron true})
|
|
||||||
{:size :small
|
{:size :small
|
||||||
:title (i18n/label :t/rpc-usage-info)
|
:title (i18n/label :t/rpc-usage-info)
|
||||||
:accessibility-label :rpc-usage-info
|
:accessibility-label :rpc-usage-info
|
||||||
@@ -81,6 +73,15 @@
|
|||||||
:on-press
|
:on-press
|
||||||
#(re-frame/dispatch [:navigate-to :peers-stats])
|
#(re-frame/dispatch [:navigate-to :peers-stats])
|
||||||
:chevron true}
|
:chevron true}
|
||||||
|
{:size :small
|
||||||
|
:title (i18n/label :t/light-client-enabled)
|
||||||
|
:accessibility-label :light-client-enabled
|
||||||
|
:container-margin-bottom 8
|
||||||
|
:on-press
|
||||||
|
#(re-frame/dispatch
|
||||||
|
[:wakuv2.ui/toggle-light-client (not light-client-enabled?)])
|
||||||
|
:accessory :switch
|
||||||
|
:active light-client-enabled?}
|
||||||
{:size :small
|
{:size :small
|
||||||
:title (i18n/label :t/transactions-management-enabled)
|
:title (i18n/label :t/transactions-management-enabled)
|
||||||
:accessibility-label :transactions-management-enabled
|
:accessibility-label :transactions-management-enabled
|
||||||
@@ -99,22 +100,7 @@
|
|||||||
#(re-frame/dispatch
|
#(re-frame/dispatch
|
||||||
[:profile.settings/change-webview-debug (not webview-debug)])
|
[:profile.settings/change-webview-debug (not webview-debug)])
|
||||||
:accessory :switch
|
:accessory :switch
|
||||||
:active webview-debug}
|
:active webview-debug}]))
|
||||||
{:size :small
|
|
||||||
:title (i18n/label :t/waku-bloom-filter-mode)
|
|
||||||
:accessibility-label :waku-bloom-filter-mode-settings-switch
|
|
||||||
:container-margin-bottom 8
|
|
||||||
:on-press
|
|
||||||
#(re-frame/dispatch
|
|
||||||
[:multiaccounts.ui/waku-bloom-filter-mode-switched (not waku-bloom-filter-mode)])
|
|
||||||
:accessory :switch
|
|
||||||
:active waku-bloom-filter-mode}
|
|
||||||
{:size :small
|
|
||||||
:title (i18n/label :t/set-currency)
|
|
||||||
:accessibility-label :wallet-change-currency
|
|
||||||
:on-press #(hide-sheet-and-dispatch
|
|
||||||
[:navigate-to :currency-settings])
|
|
||||||
:chevron true}]))
|
|
||||||
|
|
||||||
(defn- flat-list-data
|
(defn- flat-list-data
|
||||||
[options]
|
[options]
|
||||||
@@ -128,10 +114,9 @@
|
|||||||
|
|
||||||
(views/defview advanced-settings
|
(views/defview advanced-settings
|
||||||
[]
|
[]
|
||||||
(views/letsubs [{:keys [webview-debug]} [:profile/profile]
|
(views/letsubs [webview-debug [:profile/webview-debug]
|
||||||
|
light-client-enabled? [:profile/light-client-enabled?]
|
||||||
network-name [:network-name]
|
network-name [:network-name]
|
||||||
waku-bloom-filter-mode [:waku/bloom-filter-mode]
|
|
||||||
wakuv2-flag [:waku/v2-flag]
|
|
||||||
transactions-management-enabled? [:wallet-legacy/transactions-management-enabled?]
|
transactions-management-enabled? [:wallet-legacy/transactions-management-enabled?]
|
||||||
current-log-level [:log-level/current-log-level]
|
current-log-level [:log-level/current-log-level]
|
||||||
current-fleet [:fleets/current-fleet]]
|
current-fleet [:fleets/current-fleet]]
|
||||||
@@ -140,10 +125,9 @@
|
|||||||
{:network-name network-name
|
{:network-name network-name
|
||||||
:current-log-level current-log-level
|
:current-log-level current-log-level
|
||||||
:transactions-management-enabled? transactions-management-enabled?
|
:transactions-management-enabled? transactions-management-enabled?
|
||||||
|
:light-client-enabled? light-client-enabled?
|
||||||
:current-fleet current-fleet
|
:current-fleet current-fleet
|
||||||
:dev-mode? false
|
:dev-mode? false
|
||||||
:wakuv2-flag wakuv2-flag
|
|
||||||
:waku-bloom-filter-mode waku-bloom-filter-mode
|
|
||||||
:webview-debug webview-debug})
|
:webview-debug webview-debug})
|
||||||
:key-fn (fn [_ i] (str i))
|
:key-fn (fn [_ i] (str i))
|
||||||
:render-fn render-item}]))
|
:render-fn render-item}]))
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
(ns status-im.ui.screens.fleet-settings.views
|
(ns status-im.ui.screens.fleet-settings.views
|
||||||
(:require
|
(:require
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.node.core :as node]
|
|
||||||
[status-im.ui.components.icons.icons :as icons]
|
[status-im.ui.components.icons.icons :as icons]
|
||||||
[status-im.ui.components.list.views :as list]
|
[status-im.ui.components.list.views :as list]
|
||||||
[status-im.ui.components.react :as react]
|
[status-im.ui.components.react :as react]
|
||||||
|
|||||||
@@ -2,22 +2,11 @@
|
|||||||
(:require
|
(:require
|
||||||
[clojure.string :as string]
|
[clojure.string :as string]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.multiaccounts.update.core :as multiaccounts.update]
|
|
||||||
[status-im.node.core :as node]
|
|
||||||
[status-im2.navigation.events :as navigation]
|
[status-im2.navigation.events :as navigation]
|
||||||
|
[taoensso.timbre :as log]
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
(rf/defn switch-waku-bloom-filter-mode
|
|
||||||
{:events [:multiaccounts.ui/waku-bloom-filter-mode-switched]}
|
|
||||||
[cofx enabled?]
|
|
||||||
(rf/merge cofx
|
|
||||||
(multiaccounts.update/multiaccount-update
|
|
||||||
:waku-bloom-filter-mode
|
|
||||||
enabled?
|
|
||||||
{})
|
|
||||||
(node/prepare-new-config
|
|
||||||
{:on-success #(re-frame/dispatch [:logout])})))
|
|
||||||
|
|
||||||
(def address-regex #"/ip4/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/tcp/\d{1,5}/p2p/[a-zA-Z0-9]+")
|
(def address-regex #"/ip4/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/tcp/\d{1,5}/p2p/[a-zA-Z0-9]+")
|
||||||
|
|
||||||
@@ -108,13 +97,16 @@
|
|||||||
vals
|
vals
|
||||||
(map #(vector (:name %1) (:address %1)))
|
(map #(vector (:name %1) (:address %1)))
|
||||||
(into {}))]
|
(into {}))]
|
||||||
(rf/merge cofx
|
{:db (-> db
|
||||||
{:db (-> db
|
(assoc-in [:profile/profile :wakuv2-config :CustomNodes] new-nodes)
|
||||||
(assoc-in [:profile/profile :wakuv2-config :CustomNodes] new-nodes)
|
(dissoc :wakuv2-nodes/manage :wakuv2-nodes/list))
|
||||||
(dissoc :wakuv2-nodes/manage :wakuv2-nodes/list))
|
:json-rpc/call [{:method "wakuext_setCustomNodes"
|
||||||
:dispatch [:navigate-back]}
|
:params [{:customNodes new-nodes}]
|
||||||
(node/prepare-new-config
|
:on-success #(log/info "updated custom nodes")
|
||||||
{:on-success #(re-frame/dispatch [:logout])}))))
|
:on-error #(log/error "failed to set custom nodes"
|
||||||
|
{:error %
|
||||||
|
:custom-nodes new-nodes})}]
|
||||||
|
:dispatch [:navigate-back]}))
|
||||||
|
|
||||||
(rf/defn show-delete-node-confirmation
|
(rf/defn show-delete-node-confirmation
|
||||||
{:events [:wakuv2.ui/delete-pressed]}
|
{:events [:wakuv2.ui/delete-pressed]}
|
||||||
@@ -131,3 +123,17 @@
|
|||||||
(rf/merge cofx
|
(rf/merge cofx
|
||||||
(delete id)
|
(delete id)
|
||||||
(navigation/navigate-back)))
|
(navigation/navigate-back)))
|
||||||
|
|
||||||
|
(rf/defn toggle-light-client
|
||||||
|
{:events [:wakuv2.ui/toggle-light-client]}
|
||||||
|
[{:keys [db]} enabled?]
|
||||||
|
{:db (assoc-in db [:profile/profile :wakuv2-config :LightClient] enabled?)
|
||||||
|
|
||||||
|
:json-rpc/call [{:method "wakuext_setLightClient"
|
||||||
|
:params [{:enabled enabled?}]
|
||||||
|
:on-success (fn []
|
||||||
|
(log/info "light client set successfully" enabled?)
|
||||||
|
(re-frame/dispatch [:logout]))
|
||||||
|
:on-error #(log/error "failed to set light client"
|
||||||
|
{:error %
|
||||||
|
:enabled? enabled?})}]})
|
||||||
|
|||||||
@@ -6,8 +6,10 @@
|
|||||||
[status-im2.common.confirmation-drawer.view :as confirmation-drawer]
|
[status-im2.common.confirmation-drawer.view :as confirmation-drawer]
|
||||||
[status-im2.common.mute-drawer.view :as mute-drawer]
|
[status-im2.common.mute-drawer.view :as mute-drawer]
|
||||||
[status-im2.common.muting.helpers :refer [format-mute-till]]
|
[status-im2.common.muting.helpers :refer [format-mute-till]]
|
||||||
|
[status-im2.config :as config]
|
||||||
[status-im2.constants :as constants]
|
[status-im2.constants :as constants]
|
||||||
[status-im2.contexts.communities.actions.chat.view :as chat-actions]
|
[status-im2.contexts.chat.actions.view :as chat-actions]
|
||||||
|
[status-im2.contexts.communities.actions.chat.view :as communities-chat-actions]
|
||||||
[status-im2.contexts.contacts.drawers.nickname-drawer.view :as nickname-drawer]
|
[status-im2.contexts.contacts.drawers.nickname-drawer.view :as nickname-drawer]
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
@@ -253,16 +255,6 @@
|
|||||||
:chevron? true
|
:chevron? true
|
||||||
:add-divider? add-divider?}))
|
:add-divider? add-divider?}))
|
||||||
|
|
||||||
;; TODO(OmarBasem): Requires design input.
|
|
||||||
(defn fetch-messages-entry
|
|
||||||
[]
|
|
||||||
(entry {:icon :i/save
|
|
||||||
:label (i18n/label :t/fetch-messages)
|
|
||||||
:on-press #(js/alert "TODO: to be implemented, requires design input")
|
|
||||||
:danger? false
|
|
||||||
:accessibility-label :fetch-messages
|
|
||||||
:sub-label nil
|
|
||||||
:chevron? true}))
|
|
||||||
|
|
||||||
(defn remove-from-contacts-entry
|
(defn remove-from-contacts-entry
|
||||||
[contact]
|
[contact]
|
||||||
@@ -419,8 +411,8 @@
|
|||||||
[(mark-as-read-entry chat-id needs-divider?)
|
[(mark-as-read-entry chat-id needs-divider?)
|
||||||
(mute-chat-entry chat-id chat-type muted-till)
|
(mute-chat-entry chat-id chat-type muted-till)
|
||||||
(notifications-entry false)
|
(notifications-entry false)
|
||||||
(when inside-chat?
|
(when (and config/fetch-messages-enabled? inside-chat?)
|
||||||
(fetch-messages-entry))
|
(chat-actions/fetch-messages chat-id))
|
||||||
(when (or (not group-chat) public?)
|
(when (or (not group-chat) public?)
|
||||||
(show-qr-entry))
|
(show-qr-entry))
|
||||||
(when-not group-chat
|
(when-not group-chat
|
||||||
@@ -481,7 +473,7 @@
|
|||||||
constants/private-group-chat-type
|
constants/private-group-chat-type
|
||||||
[private-group-chat-actions chat inside-chat?]
|
[private-group-chat-actions chat inside-chat?]
|
||||||
constants/community-chat-type
|
constants/community-chat-type
|
||||||
[chat-actions/actions chat inside-chat?]
|
[communities-chat-actions/actions chat inside-chat?]
|
||||||
nil))
|
nil))
|
||||||
|
|
||||||
(defn group-details-actions
|
(defn group-details-actions
|
||||||
|
|||||||
@@ -172,3 +172,4 @@
|
|||||||
(def shell-navigation-disabled? false)
|
(def shell-navigation-disabled? false)
|
||||||
|
|
||||||
(def community-accounts-selection-enabled? false)
|
(def community-accounts-selection-enabled? false)
|
||||||
|
(def fetch-messages-enabled? (enabled? (get-config :FETCH_MESSAGES_ENABLED "1")))
|
||||||
|
|||||||
@@ -4,6 +4,19 @@
|
|||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
|
(defn fetch-messages!
|
||||||
|
[chat-id]
|
||||||
|
(rf/dispatch [:hide-bottom-sheet])
|
||||||
|
(rf/dispatch [:chat/fetch-messages chat-id]))
|
||||||
|
|
||||||
|
(defn fetch-messages
|
||||||
|
[chat-id]
|
||||||
|
{:icon :i/download
|
||||||
|
:right-icon :i/chevron-right
|
||||||
|
:accessibility-label :chat-fetch-messages
|
||||||
|
:on-press (partial fetch-messages! chat-id)
|
||||||
|
:label (i18n/label :t/fetch-messages)})
|
||||||
|
|
||||||
(defn new-chat
|
(defn new-chat
|
||||||
[]
|
[]
|
||||||
[quo/action-drawer
|
[quo/action-drawer
|
||||||
|
|||||||
@@ -434,3 +434,11 @@
|
|||||||
{:events [:chat/check-last-chat]}
|
{:events [:chat/check-last-chat]}
|
||||||
[{:keys [db]}]
|
[{:keys [db]}]
|
||||||
{:effects.chat/open-last-chat (get-in db [:profile/profile :key-uid])})
|
{:effects.chat/open-last-chat (get-in db [:profile/profile :key-uid])})
|
||||||
|
|
||||||
|
(rf/defn fetch-messages
|
||||||
|
{:events [:chat/fetch-messages]}
|
||||||
|
[_ chat-id]
|
||||||
|
{:json-rpc/call [{:method "wakuext_fetchMessages"
|
||||||
|
:params [{:id chat-id}]
|
||||||
|
:on-success #()
|
||||||
|
:on-error #(log/error "failed to fetch messages for chat" chat-id %)}]})
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
[status-im2.common.mute-drawer.view :as mute-drawer]
|
[status-im2.common.mute-drawer.view :as mute-drawer]
|
||||||
[status-im2.common.muting.helpers :refer [format-mute-till]]
|
[status-im2.common.muting.helpers :refer [format-mute-till]]
|
||||||
[status-im2.common.not-implemented :as not-implemented]
|
[status-im2.common.not-implemented :as not-implemented]
|
||||||
|
[status-im2.config :as config]
|
||||||
|
[status-im2.contexts.chat.actions.view :as chat-actions]
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
@@ -83,13 +85,6 @@
|
|||||||
:on-press not-implemented/alert
|
:on-press not-implemented/alert
|
||||||
:label (i18n/label :t/pinned-messages)})
|
:label (i18n/label :t/pinned-messages)})
|
||||||
|
|
||||||
(defn- action-fetch-messages
|
|
||||||
[]
|
|
||||||
{:icon :i/download
|
|
||||||
:right-icon :i/chevron-right
|
|
||||||
:accessibility-label :chat-fetch-messages
|
|
||||||
:on-press not-implemented/alert
|
|
||||||
:label (i18n/label :t/fetch-messages)})
|
|
||||||
|
|
||||||
(defn- action-invite-people
|
(defn- action-invite-people
|
||||||
[]
|
[]
|
||||||
@@ -141,7 +136,8 @@
|
|||||||
(action-mark-as-read)
|
(action-mark-as-read)
|
||||||
(action-toggle-muted chat-id muted muted-till chat-type)
|
(action-toggle-muted chat-id muted muted-till chat-type)
|
||||||
(action-notification-settings)
|
(action-notification-settings)
|
||||||
(action-fetch-messages)
|
(when config/fetch-messages-enabled?
|
||||||
|
(chat-actions/fetch-messages chat-id))
|
||||||
(action-invite-people)
|
(action-invite-people)
|
||||||
(action-qr-code)
|
(action-qr-code)
|
||||||
(action-share)]]]
|
(action-share)]]]
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
(ns status-im2.contexts.profile.rpc
|
(ns status-im2.contexts.profile.rpc
|
||||||
(:require
|
(:require
|
||||||
|
clojure.set
|
||||||
[clojure.string :as string]
|
[clojure.string :as string]
|
||||||
[utils.ens.core :as utils.ens]))
|
[utils.ens.core :as utils.ens]))
|
||||||
|
|
||||||
|
(defn rpc->wakuv2-config
|
||||||
|
[wakuv2-config]
|
||||||
|
(-> wakuv2-config
|
||||||
|
(clojure.set/rename-keys {:LightClient :light-client})))
|
||||||
|
|
||||||
(defn rpc->profiles-overview
|
(defn rpc->profiles-overview
|
||||||
[{:keys [customizationColor keycard-pairing] :as profile}]
|
[{:keys [customizationColor keycard-pairing] :as profile}]
|
||||||
(if (map? profile)
|
(if (map? profile)
|
||||||
(-> profile
|
(-> profile
|
||||||
|
(update :wakuv2-config rpc->wakuv2-config)
|
||||||
(dissoc :customizationColor)
|
(dissoc :customizationColor)
|
||||||
(assoc :customization-color (keyword customizationColor))
|
(assoc :customization-color (keyword customizationColor))
|
||||||
(assoc :ens-name? (utils.ens/is-valid-eth-name? (:name profile)))
|
(assoc :ens-name? (utils.ens/is-valid-eth-name? (:name profile)))
|
||||||
|
|||||||
@@ -63,6 +63,18 @@
|
|||||||
(fn [{:keys [public-key]}]
|
(fn [{:keys [public-key]}]
|
||||||
public-key))
|
public-key))
|
||||||
|
|
||||||
|
(re-frame/reg-sub
|
||||||
|
:profile/webview-debug
|
||||||
|
:<- [:profile/profile]
|
||||||
|
(fn [{:keys [webview-debug]}]
|
||||||
|
webview-debug))
|
||||||
|
|
||||||
|
(re-frame/reg-sub
|
||||||
|
:profile/light-client-enabled?
|
||||||
|
:<- [:profile/profile]
|
||||||
|
(fn [profile]
|
||||||
|
(get-in profile [:wakuv2-config :LightClient])))
|
||||||
|
|
||||||
(re-frame/reg-sub
|
(re-frame/reg-sub
|
||||||
:multiaccount/contact
|
:multiaccount/contact
|
||||||
:<- [:profile/profile]
|
:<- [:profile/profile]
|
||||||
|
|||||||
@@ -2376,6 +2376,7 @@
|
|||||||
"edit-derivation-path": "Edit derivation path",
|
"edit-derivation-path": "Edit derivation path",
|
||||||
"path-format": "Path format",
|
"path-format": "Path format",
|
||||||
"reset": "Reset",
|
"reset": "Reset",
|
||||||
|
"light-client-enabled": "Light client",
|
||||||
"reveal-address": "Reveal address",
|
"reveal-address": "Reveal address",
|
||||||
"derive-addresses": "Derive addresses",
|
"derive-addresses": "Derive addresses",
|
||||||
"sign transactions": "sign transactions",
|
"sign transactions": "sign transactions",
|
||||||
|
|||||||
Reference in New Issue
Block a user