chore(wallet): remove legacy network settings options (#18955)
* e2e: removed unused element --------- Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
This commit is contained in:
parent
f7498ef81f
commit
93f488e61a
|
@ -3,7 +3,6 @@
|
|||
["eth-phishing-detect" :as eth-phishing-detect]
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.bottom-sheet.events :as bottom-sheet]
|
||||
[legacy.status-im.browser.eip3085 :as eip3085]
|
||||
[legacy.status-im.browser.eip3326 :as eip3326]
|
||||
[legacy.status-im.browser.permissions :as browser.permissions]
|
||||
[legacy.status-im.browser.webview-ref :as webview-ref]
|
||||
|
@ -443,9 +442,6 @@
|
|||
(= method "wallet_switchEthereumChain")
|
||||
(eip3326/handle-switch-ethereum-chain cofx dapp-name id message-id (first params))
|
||||
|
||||
(= method "wallet_addEthereumChain")
|
||||
(eip3085/handle-add-ethereum-chain cofx dapp-name id message-id (first params))
|
||||
|
||||
:else
|
||||
{:browser/call-rpc [payload
|
||||
#(re-frame/dispatch [:browser.callback/call-rpc
|
||||
|
|
|
@ -2,10 +2,6 @@
|
|||
;(`wallet_addEthereumChain`)
|
||||
(ns legacy.status-im.browser.eip3085
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.network.core :as network]
|
||||
[legacy.status-im.ui.screens.browser.eip3085.sheet :as sheet]
|
||||
[legacy.status-im.utils.random :as random]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.constants :as constants]
|
||||
[taoensso.timbre :as log]
|
||||
|
@ -40,37 +36,3 @@
|
|||
:message "User rejected the request."}}
|
||||
:dispatch [:bottom-sheet/hide-old]})
|
||||
|
||||
(rf/defn handle-add-ethereum-chain
|
||||
{:events [:eip3085/handle-add-ethereum-chain]}
|
||||
[{{:networks/keys [networks] :as db} :db :as cofx}
|
||||
dapp-name id message-id
|
||||
{:keys [chainId blockExplorerUrls chainName iconUrls nativeCurrency rpcUrls] :as params}]
|
||||
(let [manage {:name {:value chainName}
|
||||
:symbol {:value (:symbol nativeCurrency)}
|
||||
:url {:value (first rpcUrls)}
|
||||
:network-id {:value chainId}
|
||||
:chain {:value :custom}}]
|
||||
(if (network/valid-manage? manage)
|
||||
(let [{:keys [name url chain network-id symbol]} manage
|
||||
random-id (string/replace (random/id) "-" "")
|
||||
network (network/new-network random-id
|
||||
(:value name)
|
||||
(:value symbol)
|
||||
(:value url)
|
||||
(:value chain)
|
||||
(:value network-id))
|
||||
new-networks (assoc networks random-id network)
|
||||
params (assoc params
|
||||
:new-networks new-networks
|
||||
:id id
|
||||
:new-network network)]
|
||||
(if (network/chain-id-available? networks network)
|
||||
{:dispatch [:bottom-sheet/show-sheet-old
|
||||
{:content (fn []
|
||||
[sheet/permissions-panel dapp-name message-id params])}]}
|
||||
(send-success-call-to-bridge cofx id message-id)))
|
||||
{:browser/send-to-bridge {:type constants/web3-send-async-callback
|
||||
:messageId message-id
|
||||
:error {:code -32602
|
||||
:message "invalid network parameters"}}})))
|
||||
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
(ns legacy.status-im.network.core
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.navigation.events :as navigation]
|
||||
[utils.ethereum.chain :as chain]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
[clojure.string :as string]))
|
||||
|
||||
(def url-regex
|
||||
#"https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}(\.[a-z]{2,6})?\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)")
|
||||
|
@ -14,12 +9,6 @@
|
|||
[url]
|
||||
(boolean (re-matches url-regex (str url))))
|
||||
|
||||
(def default-manage
|
||||
{:name {:value ""}
|
||||
:url {:value ""}
|
||||
:symbol {:value ""}
|
||||
:chain {:value :mainnet}})
|
||||
|
||||
(defn validate-string
|
||||
[{:keys [value]}]
|
||||
{:value value
|
||||
|
@ -56,123 +45,3 @@
|
|||
[current-networks network]
|
||||
(let [chain-id (get-in network [:config :NetworkId])]
|
||||
(every? #(not= chain-id (get-in % [1 :config :NetworkId])) current-networks)))
|
||||
|
||||
(defn get-network
|
||||
[{:keys [db]} network-id]
|
||||
(get-in db [:networks/networks network-id]))
|
||||
|
||||
(rf/defn set-input
|
||||
{:events [::input-changed]}
|
||||
[{:keys [db]} input-key value]
|
||||
{:db (-> db
|
||||
(update-in [:networks/manage input-key] assoc :value value)
|
||||
(update-in [:networks/manage] validate-manage))})
|
||||
|
||||
;; No edit functionality actually implemented
|
||||
(rf/defn edit
|
||||
{:events [::add-network-pressed]}
|
||||
[{db :db}]
|
||||
{:db (assoc db :networks/manage (validate-manage default-manage))
|
||||
:dispatch [:navigate-to :edit-network]})
|
||||
|
||||
(rf/defn connect-success
|
||||
{:events [::connect-success]}
|
||||
[_ network-id]
|
||||
{:ui/show-confirmation
|
||||
{:title (i18n/label :t/close-app-title)
|
||||
:content (i18n/label :t/logout-app-content)
|
||||
:confirm-button-text (i18n/label :t/close-app-button)
|
||||
:on-accept #(re-frame/dispatch [::save-network-settings-pressed network-id])
|
||||
:on-cancel nil}})
|
||||
|
||||
(rf/defn connect-failure
|
||||
{:events [::connect-failure]}
|
||||
[_ reason]
|
||||
{:effects.utils/show-popup
|
||||
{:title (i18n/label :t/error)
|
||||
:content (str reason)}})
|
||||
|
||||
(rf/defn connect
|
||||
{:events [::connect-network-pressed]}
|
||||
[{:keys [db] :as cofx} network-id]
|
||||
(if (get-in db [:networks/networks network-id :config])
|
||||
(connect-success cofx network-id)
|
||||
(connect-failure cofx "A network with the specified id doesn't exist")))
|
||||
|
||||
(rf/defn delete
|
||||
{:events [::delete-network-pressed]}
|
||||
[{:keys [db]} network]
|
||||
(let [current-network? (= (:networks/current-network db) network)]
|
||||
(if (or current-network?
|
||||
(not (get-in db [:networks/networks network])))
|
||||
{:ui/show-error (i18n/label :t/delete-network-error)}
|
||||
{:ui/show-confirmation {:title (i18n/label :t/delete-network-title)
|
||||
:content (i18n/label :t/delete-network-confirmation)
|
||||
:confirm-button-text (i18n/label :t/delete)
|
||||
:on-accept #(re-frame/dispatch [::remove-network-confirmed
|
||||
network])
|
||||
:on-cancel nil}})))
|
||||
|
||||
(rf/defn save-network-settings
|
||||
{:events [::save-network-settings-pressed]}
|
||||
[{:keys [db] :as cofx} network]
|
||||
{:db (assoc db :networks/current-network network)
|
||||
:json-rpc/call [{:method "settings_saveSetting"
|
||||
:params [:networks/current-network network]
|
||||
:on-success #(re-frame/dispatch [:logout])}]})
|
||||
|
||||
(rf/defn remove-network
|
||||
{:events [::remove-network-confirmed]}
|
||||
[{:keys [db] :as cofx} network]
|
||||
(let [networks (dissoc (:networks/networks db) network)]
|
||||
{:db (assoc db :networks/networks networks)
|
||||
:json-rpc/call [{:method "settings_saveSetting"
|
||||
:params [:networks/networks (vals networks)]
|
||||
:on-success #(re-frame/dispatch [:navigate-back])}]}))
|
||||
|
||||
(defn new-network
|
||||
[random-id network-name sym upstream-url chain-type chain-id]
|
||||
(let [data-dir (str "/ethereum/" (name chain-type) "_rpc")
|
||||
config {:NetworkId (or (when chain-id (int chain-id))
|
||||
(chain/chain-keyword->chain-id chain-type))
|
||||
:DataDir data-dir
|
||||
:UpstreamConfig {:Enabled true
|
||||
:URL upstream-url}}]
|
||||
{:id random-id
|
||||
:name network-name
|
||||
:symbol sym
|
||||
:config config}))
|
||||
|
||||
(rf/defn save
|
||||
{:events [::save-network-pressed]
|
||||
:interceptors [(re-frame/inject-cofx :random-id-generator)]}
|
||||
[{{:networks/keys [manage networks] :as db} :db
|
||||
random-id-generator :random-id-generator
|
||||
:as cofx}]
|
||||
(if (valid-manage? manage)
|
||||
;; rename network-id from UI to chain-id
|
||||
(let [{:keys [name url chain network-id symbol]} manage
|
||||
random-id (string/replace (random-id-generator) "-" "")
|
||||
network (new-network random-id
|
||||
(:value name)
|
||||
(:value symbol)
|
||||
(:value url)
|
||||
(:value chain)
|
||||
(:value network-id))
|
||||
custom-chain-type? (= :custom (:value chain))
|
||||
new-networks (assoc networks random-id network)]
|
||||
(if (or (not custom-chain-type?)
|
||||
(chain-id-available? networks network))
|
||||
{:db (-> db
|
||||
(dissoc :networks/manage)
|
||||
(assoc :networks/networks new-networks))
|
||||
:json-rpc/call [{:method "settings_saveSetting"
|
||||
:params [:networks/networks (vals new-networks)]
|
||||
:on-success #(re-frame/dispatch [:navigate-back])}]}
|
||||
{:ui/show-error "chain-id already defined"}))
|
||||
{:ui/show-error "invalid network parameters"}))
|
||||
|
||||
(rf/defn open-network-details
|
||||
{:events [::network-entry-pressed]}
|
||||
[cofx network]
|
||||
(navigation/navigate-to cofx :network-details {:networks/selected-network network}))
|
||||
|
|
|
@ -31,38 +31,6 @@
|
|||
(testing "an https url not on the default port"
|
||||
(is (network.core/valid-rpc-url? "https://valid.something.else:65323"))))
|
||||
|
||||
(deftest new-network-test
|
||||
(let [actual (network.core/new-network "randomid"
|
||||
"network-name"
|
||||
"network-symbol"
|
||||
"upstream-url"
|
||||
:mainnet
|
||||
nil)]
|
||||
(is (= {:id "randomid"
|
||||
:name "network-name"
|
||||
:symbol "network-symbol"
|
||||
:config {:NetworkId 1
|
||||
:DataDir "/ethereum/mainnet_rpc"
|
||||
:UpstreamConfig {:Enabled true
|
||||
:URL "upstream-url"}}}
|
||||
actual))))
|
||||
|
||||
(deftest new-network-id-test
|
||||
(let [actual (network.core/new-network "randomid"
|
||||
"network-name"
|
||||
"network-symbol"
|
||||
"upstream-url"
|
||||
:mainnet
|
||||
"5777")]
|
||||
(is (= {:id "randomid"
|
||||
:name "network-name"
|
||||
:symbol "network-symbol"
|
||||
:config {:NetworkId 5777
|
||||
:DataDir "/ethereum/mainnet_rpc"
|
||||
:UpstreamConfig {:Enabled true
|
||||
:URL "upstream-url"}}}
|
||||
actual))))
|
||||
|
||||
(deftest valid-manage-test
|
||||
(testing "a valid manage"
|
||||
(is (network.core/valid-manage? {:url {:value "http://valid.com"}
|
||||
|
@ -92,101 +60,3 @@
|
|||
:name {:value "valid"}
|
||||
:symbol {:value ""}
|
||||
:chain {:value "valid"}})))))
|
||||
|
||||
(deftest set-input-test
|
||||
(testing "it updates and validate a field"
|
||||
(is
|
||||
(= {:db {:networks/manage {:url {:value "http://valid.com"
|
||||
:error false}
|
||||
:name {:value ""
|
||||
:error true}
|
||||
:symbol {:value "symbol"
|
||||
:error false}
|
||||
:chain {:value "mainnet"
|
||||
:error false}
|
||||
:network-id {:value nil
|
||||
:error false}}}}
|
||||
(network.core/set-input {:db {:networks/manage {:url {:value "something"
|
||||
:error true}
|
||||
:name {:value ""
|
||||
:error false}
|
||||
:symbol {:value "symbol"
|
||||
:error false}
|
||||
:chain {:value "mainnet"
|
||||
:error false}}}}
|
||||
:url
|
||||
"http://valid.com")))))
|
||||
|
||||
(deftest not-save-invalid-url
|
||||
(testing "it does not save a network with an invalid url"
|
||||
(is
|
||||
(:ui/show-error (network.core/save {:random-id-generator (constantly "random")
|
||||
:db {:networks/manage {:url {:value "wrong"}
|
||||
:chain {:value "1"}
|
||||
:name {:value "empty"}}
|
||||
:profile/profile {}}})))))
|
||||
|
||||
(deftest save-valid-network
|
||||
(testing "save a valid network"
|
||||
(let [fx (network.core/save
|
||||
{:random-id-generator (constantly "random-id")
|
||||
:db {:networks/manage {:url {:value "http://valid.com"}
|
||||
:chain {:value :mainnet}
|
||||
:symbol {:value "symbol"}
|
||||
:name {:value "valid"}}
|
||||
:profile/profile {}
|
||||
:networks/networks {"random2"
|
||||
{:id "random2"
|
||||
:name "network-name"
|
||||
:symbol "symbol"
|
||||
:config {:NetworkId 1
|
||||
:DataDir "/ethereum/mainnet_rpc"
|
||||
:UpstreamConfig
|
||||
{:Enabled true
|
||||
:URL "upstream-url"}}}}}})]
|
||||
(is (= "settings_saveSetting" (:method (first (:json-rpc/call fx)))))
|
||||
(is (nil? (:networks/manage (:db fx))))
|
||||
(testing "and check that it has an id with `-` and the correct mainnet NetworkId"
|
||||
(is (= 1 (get-in fx [:db :networks/networks "randomid" :config :NetworkId])))))))
|
||||
|
||||
(deftest not-save-custom-chain-with-non-unique-id
|
||||
(testing "it does not save a custom chain with network-id already defined"
|
||||
(let [result (network.core/save
|
||||
{:random-id-generator (constantly "already-defined")
|
||||
:db {:networks/manage {:url {:value "http://valid.com"}
|
||||
:chain {:value :custom}
|
||||
:name {:value "valid"}
|
||||
:network-id {:value 1}}
|
||||
:profile/profile {}
|
||||
:networks/networks {"random"
|
||||
{:id "random"
|
||||
:name "network-name"
|
||||
:config {:NetworkId 1
|
||||
:DataDir "/ethereum/mainnet_rpc"
|
||||
:UpstreamConfig
|
||||
{:Enabled true
|
||||
:URL "upstream-url"}}}}}})]
|
||||
(is (:ui/show-error result)))))
|
||||
|
||||
(deftest save-valid-network-with-unique-chain-id-check
|
||||
(testing "save a valid network with chain-id not already defined"
|
||||
(let [fx (network.core/save
|
||||
{:random-id-generator (constantly "random")
|
||||
:db {:networks/manage {:url {:value "http://valid.com"}
|
||||
:chain {:value :mainnet}
|
||||
:name {:value "valid"}
|
||||
:symbol {:value "symbol"}
|
||||
:network-id {:value 5}}
|
||||
:profile/profile {}
|
||||
:networks/networks {"randomid"
|
||||
{:id "randomid"
|
||||
:name "network-name"
|
||||
:symbol "symbol"
|
||||
:config {:NetworkId 3
|
||||
:DataDir "/ethereum/mainnet_rpc"
|
||||
:UpstreamConfig
|
||||
{:Enabled true
|
||||
:URL "upstream-url"}}}}}})]
|
||||
(is (= "settings_saveSetting" (:method (first (:json-rpc/call fx)))))
|
||||
(is (nil? (:networks/manage (:db fx))))
|
||||
(is (get-in fx [:db :networks/networks "random"])))))
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
(ns legacy.status-im.subs.networks
|
||||
(:require
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.config :as config]
|
||||
[utils.ethereum.chain :as chain]))
|
||||
|
||||
(defn- filter-networks
|
||||
[network-type]
|
||||
(fn [network]
|
||||
(let [chain-id (chain/network->chain-id network)
|
||||
testnet? (chain/testnet? chain-id)
|
||||
custom? (:custom? network)]
|
||||
(case network-type
|
||||
:custom custom?
|
||||
:mainnet (and (not custom?) (not testnet?))
|
||||
:testnet (and (not custom?) testnet?)))))
|
||||
|
||||
(defn- label-networks
|
||||
[default-networks]
|
||||
(fn [network]
|
||||
(let [custom? (not (default-networks (:id network)))]
|
||||
(assoc network :custom? custom?))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:get-networks
|
||||
:<- [:networks/networks]
|
||||
(fn [networks]
|
||||
(let [networks (map (label-networks (into #{} (map :id config/default-networks)))
|
||||
(sort-by :name (vals networks)))
|
||||
types [:mainnet :testnet :custom]]
|
||||
(zipmap
|
||||
types
|
||||
(map #(filter (filter-networks %) networks) types)))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:manage-network-valid?
|
||||
:<- [:networks/manage]
|
||||
(fn [manage]
|
||||
(not-any? :error (vals manage))))
|
|
@ -5,7 +5,6 @@
|
|||
legacy.status-im.subs.ens
|
||||
legacy.status-im.subs.keycard
|
||||
legacy.status-im.subs.mailservers
|
||||
legacy.status-im.subs.networks
|
||||
legacy.status-im.subs.stickers
|
||||
[re-frame.core :as re-frame]))
|
||||
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
(re-frame/dispatch event))
|
||||
|
||||
(defn- normal-mode-settings-data
|
||||
[{:keys [network-name
|
||||
current-log-level
|
||||
[{:keys [current-log-level
|
||||
light-client-enabled?
|
||||
transactions-management-enabled?
|
||||
current-fleet
|
||||
|
@ -25,22 +24,6 @@
|
|||
(keep
|
||||
identity
|
||||
[{:size :small
|
||||
:title (i18n/label :t/network)
|
||||
:accessibility-label :network-button
|
||||
:container-margin-top 8
|
||||
:on-press
|
||||
#(re-frame/dispatch [:open-modal :network-settings])
|
||||
:accessory :text
|
||||
:accessory-text network-name
|
||||
:chevron true}
|
||||
{:size :small
|
||||
:title (i18n/label :t/network-info)
|
||||
:accessibility-label :network-button
|
||||
:container-margin-top 8
|
||||
:on-press
|
||||
#(re-frame/dispatch [:open-modal :network-info])
|
||||
:chevron true}
|
||||
{:size :small
|
||||
:title (i18n/label :t/log-level)
|
||||
:accessibility-label :log-level-settings-button
|
||||
:on-press
|
||||
|
@ -151,15 +134,13 @@
|
|||
is-goerli-enabled? [:profile/is-goerli-enabled?]
|
||||
light-client-enabled? [:profile/light-client-enabled?]
|
||||
webview-debug [:profile/webview-debug]
|
||||
network-name [:network-name]
|
||||
transactions-management-enabled? [:wallet-legacy/transactions-management-enabled?]
|
||||
current-log-level [:log-level/current-log-level]
|
||||
current-fleet [:fleets/current-fleet]
|
||||
peer-syncing-enabled? [:profile/peer-syncing-enabled?]]
|
||||
[list/flat-list
|
||||
{:data (flat-list-data
|
||||
{:network-name network-name
|
||||
:current-log-level current-log-level
|
||||
{:current-log-level current-log-level
|
||||
:transactions-management-enabled? transactions-management-enabled?
|
||||
:light-client-enabled? light-client-enabled?
|
||||
:current-fleet current-fleet
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
(ns legacy.status-im.ui.screens.network.edit-network.styles)
|
||||
|
||||
(def edit-network-view
|
||||
{:flex 1
|
||||
:margin-horizontal 16
|
||||
:margin-vertical 15})
|
||||
|
||||
(def bottom-container
|
||||
{:flex-direction :row
|
||||
:padding-vertical 4})
|
||||
|
||||
(def container {:flex 1})
|
|
@ -1,72 +0,0 @@
|
|||
(ns legacy.status-im.ui.screens.network.edit-network.views
|
||||
(:require
|
||||
[legacy.status-im.network.core :as network]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.screens.network.edit-network.styles :as styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn- render-network-type
|
||||
[type _ _ manage-network]
|
||||
(let [name (case type
|
||||
:mainnet (i18n/label :t/mainnet-network)
|
||||
:goerli (i18n/label :t/goerli-network)
|
||||
:custom (i18n/label :t/custom))]
|
||||
[list.item/list-item
|
||||
{:title name
|
||||
:accessory :radio
|
||||
:active (= (get-in manage-network [:chain :value]) type)
|
||||
:on-press #(re-frame/dispatch [::network/input-changed :chain type])}]))
|
||||
|
||||
(views/defview edit-network
|
||||
[]
|
||||
(views/letsubs [manage-network [:networks/manage]
|
||||
is-valid? [:manage-network-valid?]]
|
||||
(let [custom? (= (get-in manage-network [:chain :value]) :custom)]
|
||||
[react/keyboard-avoiding-view {:flex 1}
|
||||
[react/scroll-view
|
||||
[react/view styles/edit-network-view
|
||||
[react/view {:padding-vertical 8}
|
||||
[quo/text-input
|
||||
{:label (i18n/label :t/name)
|
||||
:placeholder (i18n/label :t/specify-name)
|
||||
:default-value (get-in manage-network [:name :value])
|
||||
:on-change-text #(re-frame/dispatch [::network/input-changed :name %])
|
||||
:auto-focus true}]]
|
||||
[react/view {:padding-vertical 8}
|
||||
[quo/text-input
|
||||
{:label (i18n/label :t/symbol)
|
||||
:placeholder (i18n/label :t/specify-symbol)
|
||||
:default-value (get-in manage-network [:symbol :value])
|
||||
:on-change-text #(re-frame/dispatch [::network/input-changed :symbol %])
|
||||
:auto-focus true}]]
|
||||
[react/view {:padding-vertical 8}
|
||||
[quo/text-input
|
||||
{:label (i18n/label :t/rpc-url)
|
||||
:placeholder (i18n/label :t/specify-rpc-url)
|
||||
:default-value (get-in manage-network [:url :value])
|
||||
:on-change-text #(re-frame/dispatch [::network/input-changed :url %])}]]]
|
||||
[quo/list-header (i18n/label :t/network-chain)]
|
||||
[list/flat-list
|
||||
{:data [:mainnet :goerli :custom]
|
||||
:key-fn (fn [_ i] (str i))
|
||||
:render-data manage-network
|
||||
:render-fn render-network-type}]
|
||||
(when custom?
|
||||
[react/view styles/edit-network-view
|
||||
[quo/text-input
|
||||
{:label (i18n/label :t/network-id)
|
||||
:placeholder (i18n/label :t/specify-network-id)
|
||||
:on-change-text #(re-frame/dispatch [::network/input-changed :network-id %])}]])]
|
||||
[react/view styles/bottom-container
|
||||
[react/view {:flex 1}]
|
||||
[quo/button
|
||||
{:after :main-icons/next
|
||||
:type :secondary
|
||||
:disabled (not is-valid?)
|
||||
:on-press #(re-frame/dispatch [::network/save-network-pressed])}
|
||||
(i18n/label :t/save)]]])))
|
|
@ -1,47 +0,0 @@
|
|||
(ns legacy.status-im.ui.screens.network.network-details.views
|
||||
(:require
|
||||
[legacy.status-im.network.core :as network]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.screens.network.styles :as st]
|
||||
[legacy.status-im.ui.screens.network.views :as network-settings]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.debounce :refer [throttle-and-dispatch]]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(views/defview network-details
|
||||
[]
|
||||
(views/letsubs [{:keys [networks/selected-network]} [:get-screen-params]
|
||||
current-network [:networks/current-network]
|
||||
networks [:get-networks]]
|
||||
(let [{:keys [id name config]} selected-network
|
||||
connected? (= id current-network)
|
||||
custom? (seq (filter #(= (:id %) id) (:custom networks)))]
|
||||
[:<>
|
||||
[react/view {:flex 1}
|
||||
[network-settings/network-badge
|
||||
{:name name
|
||||
:connected? connected?}]
|
||||
(when-not connected?
|
||||
[react/touchable-highlight
|
||||
{:on-press #(throttle-and-dispatch [::network/connect-network-pressed id] 1000)}
|
||||
[react/view st/connect-button-container
|
||||
[react/view
|
||||
{:style st/connect-button
|
||||
:accessibility-label :network-connect-button}
|
||||
[react/text {:style st/connect-button-label}
|
||||
(i18n/label :t/connect)]]
|
||||
[react/i18n-text
|
||||
{:style st/connect-button-description
|
||||
:key :connecting-requires-login}]]])
|
||||
[react/view (st/network-config-container)
|
||||
[react/text
|
||||
{:style st/network-config-text
|
||||
:accessibility-label :network-details-text}
|
||||
config]]]
|
||||
(when custom?
|
||||
[react/view st/bottom-container
|
||||
[react/view {:flex 1}
|
||||
[quo/button {:on-press #(re-frame/dispatch [::network/delete-network-pressed id])}
|
||||
(i18n/label :t/delete)]]])])))
|
|
@ -1,90 +0,0 @@
|
|||
(ns legacy.status-im.ui.screens.network.styles
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.utils.styles :as styles]))
|
||||
|
||||
(def wrapper
|
||||
{:flex 1})
|
||||
|
||||
(def badge-name-text
|
||||
{:font-size 17})
|
||||
|
||||
(styles/def badge-connected-text
|
||||
{:color colors/gray
|
||||
:ios {:margin-top 5}})
|
||||
|
||||
(def connect-button-container
|
||||
{:margin-top 8
|
||||
:margin-bottom 16
|
||||
:margin-horizontal 16})
|
||||
|
||||
(def connect-button
|
||||
{:height 52
|
||||
:align-items :center
|
||||
:justify-content :center
|
||||
:background-color colors/blue
|
||||
:border-radius 8
|
||||
:ios {:opacity 0.9}})
|
||||
|
||||
(def connect-button-label
|
||||
{:color colors/white-persist
|
||||
:font-size 17})
|
||||
|
||||
(def connect-button-description
|
||||
{:color colors/gray
|
||||
:margin-top 8
|
||||
:height 20})
|
||||
|
||||
(styles/defn network-config-container
|
||||
[]
|
||||
{:height 160
|
||||
:margin-top 8
|
||||
:padding-top 16
|
||||
:padding-left 16
|
||||
:margin-horizontal 16
|
||||
:background-color colors/gray-lighter
|
||||
:ios {:border-radius 9
|
||||
:opacity 0.9}
|
||||
:android {:border-radius 4}})
|
||||
|
||||
(styles/def network-config-text
|
||||
{:font-size 17
|
||||
:ios {:opacity 0.8}
|
||||
:android {:opacity 0.4}})
|
||||
|
||||
(defn network-icon
|
||||
[connected? size]
|
||||
{:width size
|
||||
:height size
|
||||
:border-radius (/ size 2)
|
||||
:background-color (if connected? colors/blue colors/gray-lighter)
|
||||
:align-items :center
|
||||
:justify-content :center})
|
||||
|
||||
(def network-badge
|
||||
{:height 88
|
||||
:padding-left 16
|
||||
:flex-direction :row
|
||||
:align-items :center})
|
||||
|
||||
(styles/def network-item
|
||||
{:flex-direction :row
|
||||
:align-items :center
|
||||
:padding-horizontal 16
|
||||
:ios {:height 64}
|
||||
:android {:height 56}})
|
||||
|
||||
(def network-item-name-text
|
||||
{:font-size 17})
|
||||
|
||||
(def network-item-connected-text
|
||||
{:color colors/gray
|
||||
:font-size 14
|
||||
:margin-top 6})
|
||||
|
||||
(def bottom-container
|
||||
{:flex-direction :row
|
||||
:margin-horizontal 12
|
||||
:margin-vertical 15})
|
||||
|
||||
(def container {:flex 1})
|
|
@ -1,71 +0,0 @@
|
|||
(ns legacy.status-im.ui.screens.network.views
|
||||
(:require
|
||||
[legacy.status-im.network.core :as network]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.icons.icons :as icons]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.screens.network.styles :as styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn- network-icon
|
||||
[connected? size]
|
||||
[react/view (styles/network-icon connected? size)
|
||||
[icons/icon :main-icons/network {:color (if connected? colors/white-persist colors/gray)}]])
|
||||
|
||||
(defn network-badge
|
||||
[& [{:keys [name connected?]}]]
|
||||
[react/view styles/network-badge
|
||||
[network-icon connected? 56]
|
||||
[react/view {:padding-left 16}
|
||||
[react/text {:style styles/badge-name-text}
|
||||
(or name (i18n/label :t/new-network))]
|
||||
(when connected?
|
||||
[react/i18n-text
|
||||
{:style styles/badge-connected-text
|
||||
:key :connected}])]])
|
||||
|
||||
(def mainnet?
|
||||
#{"mainnet" "mainnet_rpc"})
|
||||
|
||||
(defn render-network
|
||||
[{:keys [id name] :as network} _ _ current-network]
|
||||
(let [connected? (= id current-network)]
|
||||
[list.item/list-item
|
||||
{:on-press #(re-frame/dispatch [::network/network-entry-pressed network])
|
||||
:icon :main-icons/network
|
||||
:icon-bg-color (if connected? colors/blue colors/gray-lighter)
|
||||
:icon-color (if connected? colors/white-persist colors/gray)
|
||||
:title name
|
||||
:subtitle (when connected? (i18n/label :t/connected))
|
||||
:chevron true}]))
|
||||
|
||||
(views/defview network-settings
|
||||
[]
|
||||
(views/letsubs [current-network [:networks/current-network]
|
||||
networks [:get-networks]]
|
||||
[:<>
|
||||
[topbar/topbar
|
||||
{:title (i18n/label :t/network-settings)
|
||||
:right-accessories
|
||||
[{:icon :main-icons/add
|
||||
:on-press #(re-frame/dispatch [::network/add-network-pressed])}]}]
|
||||
[react/view styles/wrapper
|
||||
[list/section-list
|
||||
{:sections [{:title (i18n/label :t/main-networks)
|
||||
:key :mainnet
|
||||
:data (:mainnet networks)}
|
||||
{:title (i18n/label :t/test-networks)
|
||||
:key :testnet
|
||||
:data (:testnet networks)}
|
||||
{:title (i18n/label :t/custom-networks)
|
||||
:key :custom
|
||||
:data (:custom networks)}]
|
||||
:key-fn :id
|
||||
:default-separator? true
|
||||
:render-data current-network
|
||||
:render-fn render-network}]]]))
|
|
@ -1,84 +0,0 @@
|
|||
(ns legacy.status-im.ui.screens.network-info.views
|
||||
(:require
|
||||
[legacy.status-im.ethereum.decode :as decode]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[native-module.core :as native-module]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.json-rpc.events :as json-rpc]
|
||||
[utils.datetime :as datetime]))
|
||||
|
||||
(defn get-block
|
||||
[block callback]
|
||||
(json-rpc/call
|
||||
{:method "eth_getBlockByNumber"
|
||||
:params [block false]
|
||||
:on-success callback
|
||||
:on-error #(js/alert (str "can't fetch latest block" %))}))
|
||||
|
||||
(defn to-date
|
||||
[timestamp]
|
||||
(datetime/timestamp->long-date
|
||||
(* 1000 timestamp)))
|
||||
|
||||
(defn check-lag
|
||||
[]
|
||||
(let [latest-block (reagent/atom nil)
|
||||
last-loaded-block (reagent/atom nil)
|
||||
on-press
|
||||
(fn []
|
||||
(get-block
|
||||
"latest"
|
||||
(fn [res]
|
||||
(reset! latest-block res)
|
||||
(get-block
|
||||
(str "0x"
|
||||
(native-module/number-to-hex
|
||||
@(re-frame/subscribe [:ethereum/current-block])))
|
||||
(fn [res]
|
||||
(reset! last-loaded-block res))))))]
|
||||
(fn []
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:margin-horizontal 16}}
|
||||
(if-not @latest-block
|
||||
[react/text
|
||||
{:on-press on-press}
|
||||
"PRESS TO REFRESH"]
|
||||
[react/text
|
||||
{:on-press on-press}
|
||||
(let [latest-block-number
|
||||
(decode/uint (:number @latest-block))
|
||||
|
||||
latest-block-timestamp
|
||||
(decode/uint (:timestamp @latest-block))
|
||||
|
||||
last-loaded-block-number
|
||||
(decode/uint (:number @last-loaded-block))
|
||||
|
||||
last-loaded-block-timestamp
|
||||
(decode/uint (:timestamp @last-loaded-block))]
|
||||
(str "Latest block number: "
|
||||
latest-block-number
|
||||
"\n"
|
||||
"Latest block time: "
|
||||
(to-date latest-block-timestamp)
|
||||
"\n"
|
||||
"Last loaded block: "
|
||||
last-loaded-block-number
|
||||
"\n"
|
||||
"Last loaded block time: "
|
||||
(to-date last-loaded-block-timestamp)
|
||||
"\n"
|
||||
"Seconds diff: "
|
||||
(- latest-block-timestamp
|
||||
last-loaded-block-timestamp)
|
||||
"\n"
|
||||
"Blocks diff: " (- latest-block-number
|
||||
last-loaded-block-number)
|
||||
"\n"
|
||||
"PRESS TO REFRESH"))])])))
|
||||
|
||||
(defn network-info
|
||||
[]
|
||||
[check-lag])
|
|
@ -24,10 +24,6 @@
|
|||
[legacy.status-im.ui.screens.link-previews-settings.views :as link-previews-settings]
|
||||
[legacy.status-im.ui.screens.log-level-settings.views :as log-level-settings]
|
||||
[legacy.status-im.ui.screens.mobile-network-settings.view :as mobile-network-settings]
|
||||
[legacy.status-im.ui.screens.network-info.views :as network-info]
|
||||
[legacy.status-im.ui.screens.network.edit-network.views :as edit-network]
|
||||
[legacy.status-im.ui.screens.network.network-details.views :as network-details]
|
||||
[legacy.status-im.ui.screens.network.views :as network]
|
||||
[legacy.status-im.ui.screens.notifications-settings.views :as notifications-settings]
|
||||
[legacy.status-im.ui.screens.offline-messaging-settings.edit-mailserver.views :as edit-mailserver]
|
||||
[legacy.status-im.ui.screens.offline-messaging-settings.views :as offline-messaging-settings]
|
||||
|
@ -227,18 +223,6 @@
|
|||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component dapps-permissions/manage}
|
||||
{:name :network-settings
|
||||
;;TODO accessories
|
||||
:options {:insets {:top? true}}
|
||||
:component network/network-settings}
|
||||
{:name :network-details
|
||||
:options {:topBar {:title {:text (i18n/label :t/network-details)}}
|
||||
:insets {:top? true}}
|
||||
:component network-details/network-details}
|
||||
{:name :network-info
|
||||
:options {:topBar {:title {:text (i18n/label :t/network-info)}}
|
||||
:insets {:top? true}}
|
||||
:component network-info/network-info}
|
||||
{:name :rpc-usage-info
|
||||
:options {:topBar {:title {:text (i18n/label :t/rpc-usage-info)}}
|
||||
:insets {:top? true}}
|
||||
|
@ -247,10 +231,6 @@
|
|||
:options {:topBar {:title {:text (i18n/label :t/peers-stats)}}
|
||||
:insets {:top? true}}
|
||||
:component peers-stats/peers-stats}
|
||||
{:name :edit-network
|
||||
:options {:topBar {:title {:text (i18n/label :t/add-network)}}
|
||||
:insets {:top? true}}
|
||||
:component edit-network/edit-network}
|
||||
{:name :log-level-settings
|
||||
:options {:topBar {:title {:text (i18n/label :t/log-level-settings)}}
|
||||
:insets {:top? true}}
|
||||
|
|
|
@ -309,8 +309,6 @@ class ProfileView(BaseView):
|
|||
xpath="//android.widget.TextView[contains(@text,'with upstream RPC')]")
|
||||
self.plus_button = Button(self.driver, xpath="(//android.widget.ImageView[@content-desc='icon'])[2]")
|
||||
self.custom_chain_button = Button(self.driver, translation_id="custom")
|
||||
self.custom_network_url_input = EditBox(self.driver, translation_id="rpc-url",
|
||||
suffix="/following-sibling::*[1]/android.widget.EditText")
|
||||
self.custom_network_symbol_input = EditBox(self.driver, translation_id="specify-symbol")
|
||||
self.specify_name_input = EditBox(self.driver, translation_id="name",
|
||||
suffix="/following-sibling::*[1]/android.widget.EditText")
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
"add-custom-token": "Add custom token",
|
||||
"add-mailserver": "Add Status node",
|
||||
"add-members": "Add members",
|
||||
"add-network": "Add network",
|
||||
"add-node": "Add node",
|
||||
"add-to-contacts": "Add to contacts",
|
||||
"add-to-contacts-text": "By adding a user to your contact list, you share your wallet address",
|
||||
|
@ -401,7 +400,6 @@
|
|||
"current-pin": "Enter 6-digit passcode",
|
||||
"current-pin-description": "Enter your 6-digit passcode to proceed",
|
||||
"custom": "Custom",
|
||||
"custom-networks": "Custom networks",
|
||||
"dapp": "ÐApp",
|
||||
"dapp-would-like-to-connect-wallet": "would like to connect to",
|
||||
"dapps": "dApps",
|
||||
|
@ -662,7 +660,6 @@
|
|||
"get-stickers": "Get Stickers",
|
||||
"gif": "GIF",
|
||||
"go-to-settings": "Go to Settings...",
|
||||
"goerli-network": "Goerli network",
|
||||
"got-it": "Got it",
|
||||
"group-chat": "Group chat",
|
||||
"group-chat-admin": "Admin",
|
||||
|
@ -918,7 +915,6 @@
|
|||
"main-currency": "Main currency",
|
||||
"main-networks": "Main networks",
|
||||
"main-wallet": "Main Wallet",
|
||||
"mainnet-network": "Main network",
|
||||
"make-admin": "Make admin",
|
||||
"make-moderator": "Make moderator",
|
||||
"manage-keys-and-storage": "Manage keys and storage",
|
||||
|
@ -1027,8 +1023,6 @@
|
|||
"opening-buy-crypto": "Opening {{site}}...",
|
||||
"network": "Network",
|
||||
"network-chain": "Network chain",
|
||||
"network-details": "Network details",
|
||||
"network-info": "Network info",
|
||||
"network-fee": "Network fee",
|
||||
"network-id": "Network ID",
|
||||
"network-invalid-network-id": "Specified network id doesn't correspond to network id by RPC url",
|
||||
|
@ -1250,7 +1244,6 @@
|
|||
"retry": "Retry",
|
||||
"reveal-sync-code": "Reveal sync code",
|
||||
"revoke-access": "Revoke access",
|
||||
"rpc-url": "RPC URL",
|
||||
"save": "Save",
|
||||
"save-bio": "Save bio",
|
||||
"save-colour": "Save colour",
|
||||
|
@ -1332,7 +1325,6 @@
|
|||
"specify-name": "Specify a name",
|
||||
"specify-symbol": "Specify a symbol",
|
||||
"specify-network-id": "Specify network id",
|
||||
"specify-rpc-url": "Specify a RPC URL",
|
||||
"start-chat": "Start chat",
|
||||
"start-conversation": "Start conversation",
|
||||
"start-group-chat": "Start group chat",
|
||||
|
@ -1364,7 +1356,6 @@
|
|||
"sign-up": "Sign up",
|
||||
"tag-was-lost": "Tag was lost",
|
||||
"tap-card-again": "Tap the card to the back of your phone again",
|
||||
"test-networks": "Test networks",
|
||||
"text-input-disabled": "Please wait a moment...",
|
||||
"this-device": "This device",
|
||||
"this-device-desc": "Your keys will be encrypted and securely stored on your device",
|
||||
|
|
Loading…
Reference in New Issue