Use go-waku's connection status updates
This commit is contained in:
parent
5c0102c27b
commit
a0acdeca33
|
@ -277,9 +277,10 @@
|
|||
|
||||
(fx/defn get-node-config-callback
|
||||
{:events [::get-node-config-callback]}
|
||||
[{:keys [db] :as cofx} node-config]
|
||||
{:db (assoc-in db [:multiaccount :wakuv2-config]
|
||||
(get (types/json->clj node-config) :WakuV2Config))})
|
||||
[{:keys [db] :as cofx} node-config-json]
|
||||
(let [node-config (types/json->clj node-config-json)]
|
||||
{:db (assoc-in db [:multiaccount :wakuv2-config]
|
||||
(get node-config :WakuV2Config))}))
|
||||
|
||||
(fx/defn get-node-config
|
||||
[_]
|
||||
|
|
|
@ -89,6 +89,7 @@
|
|||
current-fleet-key (current-fleet-key db)
|
||||
current-fleet (get-current-fleet db)
|
||||
wakuv2-enabled (boolean (:waku current-fleet))
|
||||
wakuv2-nodes (into (vals (:waku current-fleet)) (vals (get wakuv2-config :CustomNodes)))
|
||||
rendezvous-nodes (pick-nodes 3 (vals (:rendezvous current-fleet)))
|
||||
{:keys [installation-id log-level
|
||||
waku-bloom-filter-mode
|
||||
|
@ -112,8 +113,8 @@
|
|||
(into (pick-nodes 2
|
||||
(vals (:whisper current-fleet)))
|
||||
(vals (:static current-fleet))))
|
||||
:WakuNodes (vals (:waku current-fleet))
|
||||
:WakuStoreNodes (vals (:waku current-fleet))
|
||||
:WakuNodes wakuv2-nodes
|
||||
:WakuStoreNodes wakuv2-nodes
|
||||
:RendezvousNodes (if wakuv2-enabled [] rendezvous-nodes)})
|
||||
|
||||
:always
|
||||
|
|
|
@ -43,6 +43,12 @@
|
|||
:peers-count peers-count)}
|
||||
(mailserver/peers-summary-change previous-summary))))
|
||||
|
||||
(fx/defn wakuv2-peer-stats
|
||||
[{:keys [db]} peer-stats]
|
||||
(let [previous-stats (:peer-stats db)]
|
||||
{:db (assoc db :peer-stats peer-stats
|
||||
:peers-count (count (:Peers peer-stats)))}))
|
||||
|
||||
(fx/defn process
|
||||
{:events [:signals/signal-received]}
|
||||
[cofx event-str]
|
||||
|
@ -59,6 +65,7 @@
|
|||
"message.delivered" (let [{:keys [chatID messageID]} (js->clj event-js :keywordize-keys true)]
|
||||
(models.message/update-db-message-status cofx chatID messageID :delivered))
|
||||
"discovery.summary" (summary cofx (js->clj event-js :keywordize-keys true))
|
||||
"wakuv2.peerstats" (wakuv2-peer-stats cofx (js->clj event-js :keywordize-keys true))
|
||||
"subscriptions.data" (ethereum.subscriptions/handle-signal cofx (js->clj event-js :keywordize-keys true))
|
||||
"subscriptions.error" (ethereum.subscriptions/handle-error cofx (js->clj event-js :keywordize-keys true))
|
||||
"messages.new" (transport.message/sanitize-messages-and-process-response cofx event-js true)
|
||||
|
|
|
@ -71,6 +71,8 @@
|
|||
(reg-root-key-sub :mobile-network/remember-choice? :mobile-network/remember-choice?)
|
||||
(reg-root-key-sub :qr-modal :qr-modal)
|
||||
(reg-root-key-sub :bootnodes/manage :bootnodes/manage)
|
||||
(reg-root-key-sub :wakuv2-nodes/manage :wakuv2-nodes/manage)
|
||||
(reg-root-key-sub :wakuv2-nodes/list :wakuv2-nodes/list)
|
||||
(reg-root-key-sub :networks/current-network :networks/current-network)
|
||||
(reg-root-key-sub :networks/networks :networks/networks)
|
||||
(reg-root-key-sub :networks/manage :networks/manage)
|
||||
|
@ -83,6 +85,7 @@
|
|||
(reg-root-key-sub :link-previews-whitelist :link-previews-whitelist)
|
||||
(reg-root-key-sub :app-state :app-state)
|
||||
(reg-root-key-sub :home-items-show-number :home-items-show-number)
|
||||
(reg-root-key-sub :waku/v2-peer-stats :peer-stats)
|
||||
|
||||
;;NOTE this one is not related to ethereum network
|
||||
;; it is about cellular network/ wifi network
|
||||
|
@ -464,11 +467,13 @@
|
|||
:disconnected?
|
||||
:<- [:peers-count]
|
||||
:<- [:waku/v2-flag]
|
||||
(fn [[peers-count wakuv2-flag]]
|
||||
;; TODO Right now wakuv2 module in status-go
|
||||
;; does not report peer counts properly,
|
||||
;; so we always assume that we're connected
|
||||
(if wakuv2-flag false (zero? peers-count))))
|
||||
:<- [:waku/v2-peer-stats]
|
||||
(fn [[peers-count wakuv2-flag peer-stats]]
|
||||
;; If wakuv2 is enabled,
|
||||
;; then fetch connectivity status from
|
||||
;; peer-stats (populated from "wakuv2.peerstats" status-go signal)
|
||||
;; Otherwise use peers-count fetched from "discovery.summary" signal
|
||||
(if wakuv2-flag (not (:IsOnline peer-stats)) (zero? peers-count))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:offline?
|
||||
|
@ -1411,8 +1416,8 @@
|
|||
manage))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:manage-bootnode-validation-errors
|
||||
:<- [:get-manage-bootnode]
|
||||
:wakuv2-nodes/validation-errors
|
||||
:<- [:wakuv2-nodes/manage]
|
||||
(fn [manage]
|
||||
(set (keep
|
||||
(fn [[k {:keys [error]}]]
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
waku-bloom-filter-mode
|
||||
communities-enabled?
|
||||
transactions-management-enabled?
|
||||
wakuv2-flag
|
||||
current-fleet
|
||||
webview-debug]}]
|
||||
(keep
|
||||
|
@ -48,12 +49,19 @@
|
|||
:accessory :text
|
||||
:accessory-text current-fleet
|
||||
: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}
|
||||
(if wakuv2-flag
|
||||
{:size :small
|
||||
:title (i18n/label :t/wakuv2-settings)
|
||||
:accessibility-label :wakuv2-settings-button
|
||||
:on-press
|
||||
#(re-frame/dispatch [:wakuv2.ui/enter-settings-pressed])
|
||||
: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
|
||||
:title (i18n/label :t/rpc-usage-info)
|
||||
:accessibility-label :rpc-usage-info
|
||||
|
@ -68,7 +76,7 @@
|
|||
:on-press
|
||||
#(re-frame/dispatch [:navigate-to :notifications-advanced-settings])
|
||||
:chevron true})
|
||||
;; If it's enabled in the config, we don't show the option
|
||||
;; If it's enabled in the config, we don't show the option
|
||||
(when (not config/communities-enabled?)
|
||||
{:size :small
|
||||
:title (i18n/label :t/communities-enabled)
|
||||
|
@ -119,6 +127,7 @@
|
|||
(views/letsubs [{:keys [webview-debug]} [:multiaccount]
|
||||
network-name [:network-name]
|
||||
waku-bloom-filter-mode [:waku/bloom-filter-mode]
|
||||
wakuv2-flag [:waku/v2-flag]
|
||||
communities-enabled? [:communities/enabled?]
|
||||
transactions-management-enabled? [:wallet/transactions-management-enabled?]
|
||||
current-log-level [:log-level/current-log-level]
|
||||
|
@ -131,6 +140,7 @@
|
|||
:transactions-management-enabled? transactions-management-enabled?
|
||||
:current-fleet current-fleet
|
||||
:dev-mode? false
|
||||
:wakuv2-flag wakuv2-flag
|
||||
:waku-bloom-filter-mode waku-bloom-filter-mode
|
||||
:webview-debug webview-debug})
|
||||
:key-fn (fn [_ i] (str i))
|
||||
|
|
|
@ -66,6 +66,10 @@
|
|||
:as
|
||||
edit-bootnode]
|
||||
[status-im.ui.screens.bootnodes-settings.views :as bootnodes-settings]
|
||||
[status-im.ui.screens.wakuv2-settings.views :as wakuv2-settings]
|
||||
[status-im.ui.screens.wakuv2-settings.edit-node.views
|
||||
:as
|
||||
edit-wakuv2-node]
|
||||
[status-im.ui.screens.pairing.views :as pairing]
|
||||
[status-im.ui.screens.offline-messaging-settings.edit-mailserver.views
|
||||
:as
|
||||
|
@ -420,6 +424,14 @@
|
|||
{:name :blocked-users-list
|
||||
:options {:topBar {:title {:text (i18n/label :t/blocked-users)}}}
|
||||
:component contacts-list/blocked-users-list}
|
||||
{:name :wakuv2-settings
|
||||
;;TODO dynamic title
|
||||
:options {:topBar {:visible false}}
|
||||
:component wakuv2-settings/wakuv2-settings}
|
||||
{:name :edit-wakuv2-node
|
||||
;;TODO dynamic title
|
||||
:options {:topBar {:visible false}}
|
||||
:component edit-wakuv2-node/edit-node}
|
||||
{:name :bootnodes-settings
|
||||
;;TODO dynamic title
|
||||
:options {:topBar {:visible false}}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
(ns status-im.ui.screens.wakuv2-settings.edit-node.styles
|
||||
(:require [quo.design-system.colors :as colors]
|
||||
[status-im.utils.styles :as styles]))
|
||||
|
||||
(def edit-node-view
|
||||
{:flex 1
|
||||
:margin-horizontal 16
|
||||
:margin-vertical 15})
|
||||
|
||||
(def button-container
|
||||
{:margin-top 8
|
||||
:margin-bottom 16
|
||||
:margin-horizontal 16})
|
||||
|
||||
(styles/def button
|
||||
{:height 52
|
||||
:align-items :center
|
||||
:justify-content :center
|
||||
:border-radius 8
|
||||
:ios {:opacity 0.9}})
|
||||
|
||||
(def button-label
|
||||
{:color colors/white-persist
|
||||
:font-size 17})
|
||||
|
||||
(def delete-button
|
||||
(assoc button
|
||||
:background-color colors/red))
|
|
@ -0,0 +1,68 @@
|
|||
(ns status-im.ui.screens.wakuv2-settings.edit-node.views
|
||||
(:require [clojure.string :as string]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.i18n.i18n :as i18n]
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im.ui.components.toolbar :as toolbar]
|
||||
[quo.core :as quo]
|
||||
[status-im.ui.components.topbar :as topbar]
|
||||
[status-im.ui.screens.wakuv2-settings.edit-node.styles
|
||||
:as
|
||||
styles])
|
||||
(:require-macros [status-im.utils.views :as views]))
|
||||
|
||||
(defn delete-button [id]
|
||||
[react/touchable-highlight {:on-press #(re-frame/dispatch [:wakuv2.ui/delete-pressed id])}
|
||||
[react/view styles/button-container
|
||||
[react/view {:style styles/delete-button
|
||||
:accessibility-label :wakuv2-delete-button}
|
||||
[react/text {:style styles/button-label}
|
||||
(i18n/label :t/delete)]]]])
|
||||
|
||||
(views/defview edit-node []
|
||||
(views/letsubs [manage-node [:wakuv2-nodes/manage]
|
||||
validation-errors [:wakuv2-nodes/validation-errors]]
|
||||
(let [address (get-in manage-node [:address :value])
|
||||
id (:id manage-node)
|
||||
name (get-in manage-node [:name :value])
|
||||
new-node? (:new? manage-node)
|
||||
is-valid? (empty? validation-errors)
|
||||
invalid-address? (contains? validation-errors :address)]
|
||||
[react/keyboard-avoiding-view {:style {:flex 1}
|
||||
:ignore-offset true}
|
||||
[topbar/topbar {:title (i18n/label (if name :t/node-details :t/add-node))}]
|
||||
[react/scroll-view {:keyboard-should-persist-taps :handled}
|
||||
[react/view styles/edit-node-view
|
||||
[react/view {:padding-vertical 8}
|
||||
[quo/text-input
|
||||
{:label (i18n/label :t/name)
|
||||
:placeholder (i18n/label :t/specify-name)
|
||||
:accessibility-label :node-name
|
||||
:default-value name
|
||||
:on-change-text #(re-frame/dispatch [:wakuv2.ui/input-changed :name %])
|
||||
:auto-focus true}]]
|
||||
[react/view
|
||||
{:flex 1
|
||||
:padding-vertical 8}
|
||||
[quo/text-input
|
||||
(merge
|
||||
{:label (i18n/label :t/node-address)
|
||||
:placeholder (i18n/label :t/wakuv2-node-format)
|
||||
:accessibility-label :node-address
|
||||
:default-value address
|
||||
:show-cancel false
|
||||
:on-change-text #(re-frame/dispatch [:wakuv2.ui/input-changed :address %])
|
||||
:error (when (and (not (string/blank? address)) invalid-address?)
|
||||
(i18n/label :t/invalid-format
|
||||
{:format (i18n/label :t/wakuv2-node-format)}))
|
||||
:bottom-value 0})]]
|
||||
(when-not new-node?
|
||||
[delete-button id])]]
|
||||
[toolbar/toolbar
|
||||
{:right
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:after :main-icon/next
|
||||
:disabled (not is-valid?)
|
||||
:on-press #(re-frame/dispatch [:wakuv2.ui/save-node-pressed])}
|
||||
(i18n/label :t/save)]}]])))
|
|
@ -0,0 +1,22 @@
|
|||
(ns status-im.ui.screens.wakuv2-settings.styles
|
||||
(:require [status-im.utils.styles :as styles]))
|
||||
|
||||
(def wrapper
|
||||
{:flex 1})
|
||||
|
||||
(def node-item-inner
|
||||
{:padding-horizontal 16})
|
||||
|
||||
(styles/def node-item
|
||||
{:flex-direction :row
|
||||
:align-items :center
|
||||
:padding-horizontal 16
|
||||
:ios {:height 64}
|
||||
:android {:height 56}})
|
||||
|
||||
(def node-item-name-text
|
||||
{:font-size 17})
|
||||
|
||||
(def switch-container
|
||||
{:height 50
|
||||
:padding-left 15})
|
|
@ -0,0 +1,50 @@
|
|||
(ns status-im.ui.screens.wakuv2-settings.views
|
||||
(:require-macros [status-im.utils.views :as views])
|
||||
(:require [re-frame.core :as re-frame]
|
||||
[status-im.i18n.i18n :as i18n]
|
||||
[status-im.ui.components.list.views :as list]
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im.ui.screens.wakuv2-settings.styles :as styles]
|
||||
[quo.core :as quo]
|
||||
[status-im.ui.components.toolbar :as toolbar]
|
||||
[status-im.ui.components.topbar :as topbar]))
|
||||
|
||||
(defn navigate-to-add-node [id]
|
||||
(re-frame/dispatch [:wakuv2.ui/add-node-pressed id]))
|
||||
|
||||
(defn render-row [[id {:keys [name]}]]
|
||||
[react/touchable-highlight
|
||||
{:on-press #(navigate-to-add-node id)
|
||||
:accessibility-label :wakuv2-node-item}
|
||||
[react/view styles/node-item
|
||||
[react/view styles/node-item-inner
|
||||
[react/text {:style styles/node-item-name-text}
|
||||
name]]]])
|
||||
|
||||
(views/defview wakuv2-settings []
|
||||
(views/letsubs [nodes [:wakuv2-nodes/list]]
|
||||
[:<>
|
||||
[topbar/topbar {:title (i18n/label :t/wakuv2-settings)
|
||||
:navigation :none
|
||||
:right-accessories
|
||||
[{:icon :main-icons/add
|
||||
:accessibility-label :add-wakuv2-node
|
||||
:on-press #(navigate-to-add-node nil)}]}]
|
||||
[react/view styles/wrapper
|
||||
[list/flat-list {:data nodes
|
||||
:default-separator? false
|
||||
:key-fn :id
|
||||
:render-fn render-row}]]
|
||||
[toolbar/toolbar
|
||||
{:left
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:after :main-icon/close
|
||||
:on-press #(re-frame/dispatch [:wakuv2.ui/discard-all-pressed])}
|
||||
(i18n/label :t/cancel)]
|
||||
:right
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:after :main-icon/next
|
||||
:on-press #(re-frame/dispatch [:wakuv2.ui/save-all-pressed])}
|
||||
(i18n/label :t/save)]}]]))
|
|
@ -1,7 +1,10 @@
|
|||
(ns status-im.waku.core
|
||||
(:require [re-frame.core :as re-frame]
|
||||
[clojure.string :as string]
|
||||
[status-im.i18n.i18n :as i18n]
|
||||
[status-im.multiaccounts.update.core :as multiaccounts.update]
|
||||
[status-im.node.core :as node]
|
||||
[status-im.navigation :as navigation]
|
||||
[status-im.utils.fx :as fx]))
|
||||
|
||||
(fx/defn switch-waku-bloom-filter-mode
|
||||
|
@ -13,3 +16,108 @@
|
|||
{})
|
||||
(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]+")
|
||||
|
||||
(defn valid-address? [address]
|
||||
(re-matches address-regex address))
|
||||
|
||||
(fx/defn set-input
|
||||
{:events [:wakuv2.ui/input-changed]}
|
||||
[{:keys [db] :as cofx} input-key value]
|
||||
{:db (assoc-in db [:wakuv2-nodes/manage input-key]
|
||||
{:value value
|
||||
:error (case input-key
|
||||
:name (string/blank? value)
|
||||
:address (when value (not (valid-address? value))))})})
|
||||
|
||||
(fx/defn enter-settings
|
||||
{:events [:wakuv2.ui/enter-settings-pressed]
|
||||
:interceptors [(re-frame/inject-cofx :random-guid-generator)]}
|
||||
[{:keys [db random-guid-generator] :as cofx}]
|
||||
(let [custom-nodes (into {}
|
||||
(map #(vector (random-guid-generator) {:name (name (first %1)) :address (second %1)}) (get-in db [:multiaccount :wakuv2-config :CustomNodes])))]
|
||||
(fx/merge cofx
|
||||
{:db (assoc db :wakuv2-nodes/list custom-nodes)
|
||||
:dispatch [:navigate-to :wakuv2-settings]})))
|
||||
|
||||
(fx/defn edit
|
||||
{:events [:wakuv2.ui/add-node-pressed]
|
||||
:interceptors [(re-frame/inject-cofx :random-guid-generator)]}
|
||||
[{:keys [db random-guid-generator] :as cofx} id]
|
||||
(let [{:keys [name address]} (get-in db [:wakuv2-nodes/list id])
|
||||
id (or id (random-guid-generator))
|
||||
fxs (fx/merge cofx
|
||||
{:db (update db :wakuv2-nodes/manage
|
||||
assoc :new? (nil? name)
|
||||
:id id)}
|
||||
(set-input :name name)
|
||||
(set-input :address address))]
|
||||
(assoc fxs :dispatch [:navigate-to :edit-wakuv2-node])))
|
||||
|
||||
(fx/defn delete [{:keys [db] :as cofx} id]
|
||||
(fx/merge cofx
|
||||
{:db (-> db
|
||||
(update :wakuv2-nodes/list dissoc id)
|
||||
(dissoc :wakuv2-nodes/manage))}))
|
||||
|
||||
(fx/defn save-node
|
||||
{:events [:wakuv2.ui/save-node-pressed]}
|
||||
[{:keys [db] :as cofx}]
|
||||
(let [manage (:wakuv2-nodes/manage db)
|
||||
id (:id manage)]
|
||||
(fx/merge cofx
|
||||
{:db (-> db
|
||||
(assoc-in [:wakuv2-nodes/list id]
|
||||
{:name (get-in manage [:name :value])
|
||||
:address (get-in manage [:address :value])})
|
||||
(dissoc :wakuv2-nodes/manage))
|
||||
:dispatch [:navigate-back]})))
|
||||
|
||||
(fx/defn discard-all
|
||||
{:events [:wakuv2.ui/discard-all-pressed]}
|
||||
[{:keys [db] :as cofx}]
|
||||
(fx/merge cofx
|
||||
{:db (dissoc db :wakuv2-nodes/manage :wakuv2-nodes/list)
|
||||
:dispatch [:navigate-back]}))
|
||||
|
||||
(fx/defn save-all-pressed
|
||||
{:events [:wakuv2.ui/save-all-pressed]}
|
||||
[{:keys [db] :as cofx}]
|
||||
{:ui/show-confirmation
|
||||
{:title (i18n/label :t/close-app-title)
|
||||
:content (i18n/label :t/wakuv2-change-nodes)
|
||||
:confirm-button-text (i18n/label :t/close-app-button)
|
||||
:on-accept
|
||||
#(re-frame/dispatch [:wakuv2.ui/save-all-confirmed])
|
||||
:on-cancel nil}})
|
||||
|
||||
(fx/defn save-all
|
||||
{:events [:wakuv2.ui/save-all-confirmed]}
|
||||
[{:keys [db] :as cofx}]
|
||||
(let [new-nodes (->> (:wakuv2-nodes/list db)
|
||||
vals
|
||||
(map #(vector (:name %1) (:address %1)))
|
||||
(into {}))]
|
||||
(fx/merge cofx
|
||||
{:db (-> db
|
||||
(assoc-in [:multiaccount :wakuv2-config :CustomNodes] new-nodes)
|
||||
(dissoc :wakuv2-nodes/manage :wakuv2-nodes/list))
|
||||
:dispatch [:navigate-back]}
|
||||
(node/prepare-new-config
|
||||
{:on-success #(re-frame/dispatch [:logout])}))))
|
||||
|
||||
(fx/defn show-delete-node-confirmation
|
||||
{:events [:wakuv2.ui/delete-pressed]}
|
||||
[_ node-name]
|
||||
{:ui/show-confirmation {:title (i18n/label :t/delete-node-title)
|
||||
:content (i18n/label :t/delete-node-are-you-sure)
|
||||
:confirm-button-text (i18n/label :t/delete-node)
|
||||
:on-accept #(re-frame/dispatch [:wakuv2.ui/delete-confirmed node-name])}})
|
||||
|
||||
(fx/defn delete-node
|
||||
{:events [:wakuv2.ui/delete-confirmed]}
|
||||
[cofx id]
|
||||
(fx/merge cofx
|
||||
(delete id)
|
||||
(navigation/navigate-back)))
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
"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",
|
||||
"address": "Address",
|
||||
|
@ -410,6 +411,9 @@
|
|||
"delete-network-confirmation": "Are you sure you want to delete this network?",
|
||||
"delete-network-error": "Please connect to a different network before deleting this one",
|
||||
"delete-network-title": "Delete network?",
|
||||
"delete-node": "Delete node",
|
||||
"delete-node-are-you-sure": "Are you sure you want to delete this node?",
|
||||
"delete-node-title": "Delete node",
|
||||
"delete-profile": "Delete profile",
|
||||
"delete-my-profile": "Delete my profile",
|
||||
"delete-profile-warning": "Warning: If you don’t have your seed phrase written down, you will lose access to your funds after you delete your profile",
|
||||
|
@ -921,6 +925,8 @@
|
|||
"no-result": "No results",
|
||||
"no-tokens-found": "No tokens found",
|
||||
"node-info": "Node info",
|
||||
"node-address": "Node address",
|
||||
"node-details": "Node details",
|
||||
"node-version": "Node version",
|
||||
"nonce": "Nonce",
|
||||
"none": "None",
|
||||
|
@ -1379,6 +1385,9 @@
|
|||
"add-private-key-account": "Add account from private key",
|
||||
"profile-not-found": "Profile not found",
|
||||
"waku-bloom-filter-mode": "Waku bloom filter mode",
|
||||
"wakuv2-settings": "Waku v2 settings",
|
||||
"wakuv2-node-format": "/ip4/{node-ip}/tcp/{port}/p2p/{id}",
|
||||
"wakuv2-change-nodes": "Are you sure you want to change Wakuv2 nodes?",
|
||||
"appearance": "Appearance",
|
||||
"preference": "Preference",
|
||||
"light": "Light",
|
||||
|
|
Loading…
Reference in New Issue