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]
|
["eth-phishing-detect" :as eth-phishing-detect]
|
||||||
[clojure.string :as string]
|
[clojure.string :as string]
|
||||||
[legacy.status-im.bottom-sheet.events :as bottom-sheet]
|
[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.eip3326 :as eip3326]
|
||||||
[legacy.status-im.browser.permissions :as browser.permissions]
|
[legacy.status-im.browser.permissions :as browser.permissions]
|
||||||
[legacy.status-im.browser.webview-ref :as webview-ref]
|
[legacy.status-im.browser.webview-ref :as webview-ref]
|
||||||
|
@ -443,9 +442,6 @@
|
||||||
(= method "wallet_switchEthereumChain")
|
(= method "wallet_switchEthereumChain")
|
||||||
(eip3326/handle-switch-ethereum-chain cofx dapp-name id message-id (first params))
|
(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
|
:else
|
||||||
{:browser/call-rpc [payload
|
{:browser/call-rpc [payload
|
||||||
#(re-frame/dispatch [:browser.callback/call-rpc
|
#(re-frame/dispatch [:browser.callback/call-rpc
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
;(`wallet_addEthereumChain`)
|
;(`wallet_addEthereumChain`)
|
||||||
(ns legacy.status-im.browser.eip3085
|
(ns legacy.status-im.browser.eip3085
|
||||||
(:require
|
(: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]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.constants :as constants]
|
[status-im.constants :as constants]
|
||||||
[taoensso.timbre :as log]
|
[taoensso.timbre :as log]
|
||||||
|
@ -40,37 +36,3 @@
|
||||||
:message "User rejected the request."}}
|
:message "User rejected the request."}}
|
||||||
:dispatch [:bottom-sheet/hide-old]})
|
: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
|
(ns legacy.status-im.network.core
|
||||||
(:require
|
(:require
|
||||||
[clojure.string :as string]
|
[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]))
|
|
||||||
|
|
||||||
(def url-regex
|
(def url-regex
|
||||||
#"https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}(\.[a-z]{2,6})?\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)")
|
#"https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}(\.[a-z]{2,6})?\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)")
|
||||||
|
@ -14,12 +9,6 @@
|
||||||
[url]
|
[url]
|
||||||
(boolean (re-matches url-regex (str url))))
|
(boolean (re-matches url-regex (str url))))
|
||||||
|
|
||||||
(def default-manage
|
|
||||||
{:name {:value ""}
|
|
||||||
:url {:value ""}
|
|
||||||
:symbol {:value ""}
|
|
||||||
:chain {:value :mainnet}})
|
|
||||||
|
|
||||||
(defn validate-string
|
(defn validate-string
|
||||||
[{:keys [value]}]
|
[{:keys [value]}]
|
||||||
{:value value
|
{:value value
|
||||||
|
@ -56,123 +45,3 @@
|
||||||
[current-networks network]
|
[current-networks network]
|
||||||
(let [chain-id (get-in network [:config :NetworkId])]
|
(let [chain-id (get-in network [:config :NetworkId])]
|
||||||
(every? #(not= chain-id (get-in % [1 :config :NetworkId])) current-networks)))
|
(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"
|
(testing "an https url not on the default port"
|
||||||
(is (network.core/valid-rpc-url? "https://valid.something.else:65323"))))
|
(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
|
(deftest valid-manage-test
|
||||||
(testing "a valid manage"
|
(testing "a valid manage"
|
||||||
(is (network.core/valid-manage? {:url {:value "http://valid.com"}
|
(is (network.core/valid-manage? {:url {:value "http://valid.com"}
|
||||||
|
@ -92,101 +60,3 @@
|
||||||
:name {:value "valid"}
|
:name {:value "valid"}
|
||||||
:symbol {:value ""}
|
:symbol {:value ""}
|
||||||
:chain {:value "valid"}})))))
|
: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.ens
|
||||||
legacy.status-im.subs.keycard
|
legacy.status-im.subs.keycard
|
||||||
legacy.status-im.subs.mailservers
|
legacy.status-im.subs.mailservers
|
||||||
legacy.status-im.subs.networks
|
|
||||||
legacy.status-im.subs.stickers
|
legacy.status-im.subs.stickers
|
||||||
[re-frame.core :as re-frame]))
|
[re-frame.core :as re-frame]))
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,7 @@
|
||||||
(re-frame/dispatch event))
|
(re-frame/dispatch event))
|
||||||
|
|
||||||
(defn- normal-mode-settings-data
|
(defn- normal-mode-settings-data
|
||||||
[{:keys [network-name
|
[{:keys [current-log-level
|
||||||
current-log-level
|
|
||||||
light-client-enabled?
|
light-client-enabled?
|
||||||
transactions-management-enabled?
|
transactions-management-enabled?
|
||||||
current-fleet
|
current-fleet
|
||||||
|
@ -25,22 +24,6 @@
|
||||||
(keep
|
(keep
|
||||||
identity
|
identity
|
||||||
[{:size :small
|
[{: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)
|
:title (i18n/label :t/log-level)
|
||||||
:accessibility-label :log-level-settings-button
|
:accessibility-label :log-level-settings-button
|
||||||
:on-press
|
:on-press
|
||||||
|
@ -151,15 +134,13 @@
|
||||||
is-goerli-enabled? [:profile/is-goerli-enabled?]
|
is-goerli-enabled? [:profile/is-goerli-enabled?]
|
||||||
light-client-enabled? [:profile/light-client-enabled?]
|
light-client-enabled? [:profile/light-client-enabled?]
|
||||||
webview-debug [:profile/webview-debug]
|
webview-debug [:profile/webview-debug]
|
||||||
network-name [:network-name]
|
|
||||||
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]
|
||||||
peer-syncing-enabled? [:profile/peer-syncing-enabled?]]
|
peer-syncing-enabled? [:profile/peer-syncing-enabled?]]
|
||||||
[list/flat-list
|
[list/flat-list
|
||||||
{:data (flat-list-data
|
{: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?
|
:transactions-management-enabled? transactions-management-enabled?
|
||||||
:light-client-enabled? light-client-enabled?
|
:light-client-enabled? light-client-enabled?
|
||||||
:current-fleet current-fleet
|
: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.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.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.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.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.edit-mailserver.views :as edit-mailserver]
|
||||||
[legacy.status-im.ui.screens.offline-messaging-settings.views :as offline-messaging-settings]
|
[legacy.status-im.ui.screens.offline-messaging-settings.views :as offline-messaging-settings]
|
||||||
|
@ -227,18 +223,6 @@
|
||||||
;;TODO dynamic title
|
;;TODO dynamic title
|
||||||
:options {:insets {:top? true}}
|
:options {:insets {:top? true}}
|
||||||
:component dapps-permissions/manage}
|
: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
|
{:name :rpc-usage-info
|
||||||
:options {:topBar {:title {:text (i18n/label :t/rpc-usage-info)}}
|
:options {:topBar {:title {:text (i18n/label :t/rpc-usage-info)}}
|
||||||
:insets {:top? true}}
|
:insets {:top? true}}
|
||||||
|
@ -247,10 +231,6 @@
|
||||||
:options {:topBar {:title {:text (i18n/label :t/peers-stats)}}
|
:options {:topBar {:title {:text (i18n/label :t/peers-stats)}}
|
||||||
:insets {:top? true}}
|
:insets {:top? true}}
|
||||||
:component peers-stats/peers-stats}
|
: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
|
{:name :log-level-settings
|
||||||
:options {:topBar {:title {:text (i18n/label :t/log-level-settings)}}
|
:options {:topBar {:title {:text (i18n/label :t/log-level-settings)}}
|
||||||
:insets {:top? true}}
|
:insets {:top? true}}
|
||||||
|
|
|
@ -309,8 +309,6 @@ class ProfileView(BaseView):
|
||||||
xpath="//android.widget.TextView[contains(@text,'with upstream RPC')]")
|
xpath="//android.widget.TextView[contains(@text,'with upstream RPC')]")
|
||||||
self.plus_button = Button(self.driver, xpath="(//android.widget.ImageView[@content-desc='icon'])[2]")
|
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_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.custom_network_symbol_input = EditBox(self.driver, translation_id="specify-symbol")
|
||||||
self.specify_name_input = EditBox(self.driver, translation_id="name",
|
self.specify_name_input = EditBox(self.driver, translation_id="name",
|
||||||
suffix="/following-sibling::*[1]/android.widget.EditText")
|
suffix="/following-sibling::*[1]/android.widget.EditText")
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
"add-custom-token": "Add custom token",
|
"add-custom-token": "Add custom token",
|
||||||
"add-mailserver": "Add Status node",
|
"add-mailserver": "Add Status node",
|
||||||
"add-members": "Add members",
|
"add-members": "Add members",
|
||||||
"add-network": "Add network",
|
|
||||||
"add-node": "Add node",
|
"add-node": "Add node",
|
||||||
"add-to-contacts": "Add to contacts",
|
"add-to-contacts": "Add to contacts",
|
||||||
"add-to-contacts-text": "By adding a user to your contact list, you share your wallet address",
|
"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": "Enter 6-digit passcode",
|
||||||
"current-pin-description": "Enter your 6-digit passcode to proceed",
|
"current-pin-description": "Enter your 6-digit passcode to proceed",
|
||||||
"custom": "Custom",
|
"custom": "Custom",
|
||||||
"custom-networks": "Custom networks",
|
|
||||||
"dapp": "ÐApp",
|
"dapp": "ÐApp",
|
||||||
"dapp-would-like-to-connect-wallet": "would like to connect to",
|
"dapp-would-like-to-connect-wallet": "would like to connect to",
|
||||||
"dapps": "dApps",
|
"dapps": "dApps",
|
||||||
|
@ -662,7 +660,6 @@
|
||||||
"get-stickers": "Get Stickers",
|
"get-stickers": "Get Stickers",
|
||||||
"gif": "GIF",
|
"gif": "GIF",
|
||||||
"go-to-settings": "Go to Settings...",
|
"go-to-settings": "Go to Settings...",
|
||||||
"goerli-network": "Goerli network",
|
|
||||||
"got-it": "Got it",
|
"got-it": "Got it",
|
||||||
"group-chat": "Group chat",
|
"group-chat": "Group chat",
|
||||||
"group-chat-admin": "Admin",
|
"group-chat-admin": "Admin",
|
||||||
|
@ -918,7 +915,6 @@
|
||||||
"main-currency": "Main currency",
|
"main-currency": "Main currency",
|
||||||
"main-networks": "Main networks",
|
"main-networks": "Main networks",
|
||||||
"main-wallet": "Main Wallet",
|
"main-wallet": "Main Wallet",
|
||||||
"mainnet-network": "Main network",
|
|
||||||
"make-admin": "Make admin",
|
"make-admin": "Make admin",
|
||||||
"make-moderator": "Make moderator",
|
"make-moderator": "Make moderator",
|
||||||
"manage-keys-and-storage": "Manage keys and storage",
|
"manage-keys-and-storage": "Manage keys and storage",
|
||||||
|
@ -1027,8 +1023,6 @@
|
||||||
"opening-buy-crypto": "Opening {{site}}...",
|
"opening-buy-crypto": "Opening {{site}}...",
|
||||||
"network": "Network",
|
"network": "Network",
|
||||||
"network-chain": "Network chain",
|
"network-chain": "Network chain",
|
||||||
"network-details": "Network details",
|
|
||||||
"network-info": "Network info",
|
|
||||||
"network-fee": "Network fee",
|
"network-fee": "Network fee",
|
||||||
"network-id": "Network ID",
|
"network-id": "Network ID",
|
||||||
"network-invalid-network-id": "Specified network id doesn't correspond to network id by RPC url",
|
"network-invalid-network-id": "Specified network id doesn't correspond to network id by RPC url",
|
||||||
|
@ -1250,7 +1244,6 @@
|
||||||
"retry": "Retry",
|
"retry": "Retry",
|
||||||
"reveal-sync-code": "Reveal sync code",
|
"reveal-sync-code": "Reveal sync code",
|
||||||
"revoke-access": "Revoke access",
|
"revoke-access": "Revoke access",
|
||||||
"rpc-url": "RPC URL",
|
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"save-bio": "Save bio",
|
"save-bio": "Save bio",
|
||||||
"save-colour": "Save colour",
|
"save-colour": "Save colour",
|
||||||
|
@ -1332,7 +1325,6 @@
|
||||||
"specify-name": "Specify a name",
|
"specify-name": "Specify a name",
|
||||||
"specify-symbol": "Specify a symbol",
|
"specify-symbol": "Specify a symbol",
|
||||||
"specify-network-id": "Specify network id",
|
"specify-network-id": "Specify network id",
|
||||||
"specify-rpc-url": "Specify a RPC URL",
|
|
||||||
"start-chat": "Start chat",
|
"start-chat": "Start chat",
|
||||||
"start-conversation": "Start conversation",
|
"start-conversation": "Start conversation",
|
||||||
"start-group-chat": "Start group chat",
|
"start-group-chat": "Start group chat",
|
||||||
|
@ -1364,7 +1356,6 @@
|
||||||
"sign-up": "Sign up",
|
"sign-up": "Sign up",
|
||||||
"tag-was-lost": "Tag was lost",
|
"tag-was-lost": "Tag was lost",
|
||||||
"tap-card-again": "Tap the card to the back of your phone again",
|
"tap-card-again": "Tap the card to the back of your phone again",
|
||||||
"test-networks": "Test networks",
|
|
||||||
"text-input-disabled": "Please wait a moment...",
|
"text-input-disabled": "Please wait a moment...",
|
||||||
"this-device": "This device",
|
"this-device": "This device",
|
||||||
"this-device-desc": "Your keys will be encrypted and securely stored on your device",
|
"this-device-desc": "Your keys will be encrypted and securely stored on your device",
|
||||||
|
|
Loading…
Reference in New Issue