[#8446] [Multi-Account] Build account settings for individual wallet

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
This commit is contained in:
Andrey Shovkoplyas 2019-10-10 13:39:18 +02:00
parent 647bde7c6b
commit 1c51731aea
No known key found for this signature in database
GPG Key ID: EAAB7C8622D860A4
41 changed files with 199 additions and 112 deletions

View File

@ -472,6 +472,13 @@
(fn [[acc address]]
(some #(when (= (:address %) address) %) (:accounts acc))))
(re-frame/reg-sub
:current-account
:<- [:multiaccount]
:<- [:get-screen-params :wallet-account]
(fn [[macc acc]]
(some #(when (= (:address %) (:address acc)) %) (:accounts macc))))
;;CHAT ==============================================================================================================
(re-frame/reg-sub

View File

@ -3,9 +3,10 @@
[status-im.utils.platform :as p]
[status-im.utils.styles :as styles]))
(defn label [editable]
(defn label [editable label-style]
(merge
{:margin-vertical 10}
label-style
(when-not editable {:color colors/gray})))
(defn input-container [height editable]

View File

@ -15,13 +15,13 @@
merged-styles)))
(defn text-input-with-label
[{:keys [label content error style height container
[{:keys [label content error style height container label-style
parent-container bottom-value text editable keyboard-type]
:as props
:or {editable true}}]
[react/view {:style parent-container}
(when label
[react/text {:style (styles/label editable)}
[react/text {:style (styles/label editable label-style)}
label])
[react/view {:style (merge-container-styles height container editable)}
[react/text-input

View File

@ -300,7 +300,7 @@
(defn- registration
[checked contract address public-key]
[react/view {:style {:flex 1 :margin-top 24}}
[section {:title (i18n/label :t/ens-wallet-address)
[section {:title (i18n/label :t/wallet-address)
:content address}]
[react/view {:style {:margin-top 14}}
[section {:title (i18n/label :t/key)
@ -498,7 +498,7 @@
(str (i18n/label :t/ens-10-SNT) ", deposit unlocked"))]]])
[react/view {:style {:margin-top 22}}
(when-not pending?
[section {:title (i18n/label :t/ens-wallet-address)
[section {:title (i18n/label :t/wallet-address)
:content (ethereum/normalized-address address)}])
(when-not pending?
[react/view {:style {:margin-top 14}}

View File

@ -68,7 +68,8 @@
[status-im.ui.screens.wallet.custom-tokens.views :as custom-tokens]
[status-im.ui.screens.wallet.accounts.views :as wallet.accounts]
[status-im.ui.screens.wallet.account.views :as wallet.account]
[status-im.ui.screens.wallet.add-new.views :as add-account]))
[status-im.ui.screens.wallet.add-new.views :as add-account]
[status-im.ui.screens.wallet.account-settings.views :as account-settings]))
(def all-screens
{:login login/login
@ -197,7 +198,8 @@
:keycard-welcome keycard/welcome
:add-new-account add-account/add-account
:add-new-account-password add-account/password
:account-added add-account/account-added})
:account-added account-settings/account-added
:account-settings account-settings/account-settings})
(defn get-screen [screen]
(get all-screens screen #(throw (str "Screen " screen " is not defined."))))

View File

@ -7,6 +7,7 @@
:add-new-account
:add-new-account-password
:account-added
:account-settings
:collectibles-list
:wallet-onboarding-setup
:contact-code

View File

@ -121,7 +121,7 @@
[transactions address])])))
(views/defview account []
(views/letsubs [{:keys [name address] :as account} [:get-screen-params]]
(views/letsubs [{:keys [name address] :as account} [:current-account]]
[react/view {:flex 1 :background-color colors/white}
[toolbar-view name]
[react/scroll-view

View File

@ -0,0 +1,124 @@
(ns status-im.ui.screens.wallet.account-settings.views
(:require-macros [status-im.utils.views :refer [defview letsubs]])
(:require [status-im.ui.components.react :as react]
[status-im.ui.components.status-bar.view :as status-bar]
[status-im.ui.components.toolbar.view :as topbar]
[status-im.ui.components.text-input.view :as text-input]
[re-frame.core :as re-frame]
[status-im.i18n :as i18n]
[status-im.ui.components.icons.vector-icons :as icons]
[status-im.ui.components.colors :as colors]
[status-im.ui.components.button :as button]
[clojure.string :as string]
[status-im.ui.components.toolbar :as toolbar]
[status-im.ui.components.copyable-text :as copyable-text]
[reagent.core :as reagent]))
(defview colors-popover [selected-color on-press]
(letsubs [width [:dimensions/window-width]]
[react/view {:flex 1 :padding-bottom 16}
[react/scroll-view {:style {:margin 16}}
(doall
(for [color colors/account-colors]
^{:key color}
[react/touchable-highlight {:on-press #(on-press color)}
[react/view {:height 52 :background-color color :border-radius 8 :width (* 0.7 width)
:justify-content :center :padding-left 12 :margin-bottom 16}
[react/view {:height 32 :width 32 :border-radius 20 :align-items :center :justify-content :center
:background-color colors/black-transparent}
(when (= selected-color color)
[icons/icon :main-icons/check {:color colors/white}])]]]))]
[toolbar/toolbar
{:center {:on-press #(re-frame/dispatch [:hide-popover])
:label (i18n/label :t/cancel)
:type :secondary}}]]))
(defview account-added []
(letsubs [{:keys [account]} [:generate-account]]
[react/keyboard-avoiding-view {:flex 1}
[status-bar/status-bar]
[react/scroll-view {:keyboard-should-persist-taps :handled
:style {:margin-top 70 :flex 1}}
[react/view {:align-items :center :padding-horizontal 40}
[react/view {:height 40 :width 40 :border-radius 20 :align-items :center :justify-content :center
:background-color (:color account)}
[icons/icon :main-icons/check {:color colors/white}]]
[react/text {:style {:typography :header :margin-top 16}}
(i18n/label :t/account-added)]
[react/text {:style {:color colors/gray :text-align :center :margin-top 16 :line-height 22}}
(i18n/label :t/you-can-change-account)]]
[react/view {:height 52}]
[react/view {:margin-horizontal 16}
[text-input/text-input-with-label
{:label (i18n/label :t/account-name)
:auto-focus false
:default-value (:name account)
:on-change-text #(re-frame/dispatch [:set-in [:generate-account :account :name] %])}]
[react/text {:style {:margin-top 30}} (i18n/label :t/account-color)]
[react/touchable-highlight
{:on-press #(re-frame/dispatch [:show-popover
{:view [colors-popover (:color account)
(fn [new-color]
(re-frame/dispatch [:set-in [:generate-account :account :color] new-color])
(re-frame/dispatch [:hide-popover]))]
:style {:max-height "60%"}}])}
[react/view {:height 52 :margin-top 12 :background-color (:color account) :border-radius 8
:align-items :flex-end :justify-content :center :padding-right 12}
[icons/icon :main-icons/dropdown {:color colors/white}]]]]]
[toolbar/toolbar
{:right {:type :next
:label (i18n/label :t/finish)
:on-press #(re-frame/dispatch [:wallet.accounts/save-generated-account])
:disabled? (string/blank? (:name account))}}]]))
(defn property [label value]
[react/view {:margin-top 28}
[react/text {:style {:color colors/gray}} label]
(if (string? value)
[react/text {:style {:margin-top 6}} value]
value)])
(defview account-settings []
(letsubs [{:keys [address color path] :as account} [:current-account]
new-account (reagent/atom nil)]
[react/keyboard-avoiding-view {:flex 1}
[status-bar/status-bar]
[topbar/toolbar {}
topbar/default-nav-back
[topbar/content-title (i18n/label :t/account-settings)]
(when (and @new-account (not= "" (:name @new-account)))
[button/button {:type :secondary :label (i18n/label :t/apply)
:on-press #(do
(re-frame/dispatch [:wallet.accounts/save-account account @new-account])
(reset! new-account nil))}])]
[react/scroll-view {:keyboard-should-persist-taps :handled
:style {:flex 1}}
[react/view {:margin-horizontal 16 :padding-bottom 28 :padding-top 10}
[text-input/text-input-with-label
{:label (i18n/label :t/account-name)
:label-style {:color colors/gray}
:auto-focus false
:default-value (:name account)
:on-change-text #(swap! new-account assoc :name %)}]
[react/text {:style {:margin-top 30 :color colors/gray}} (i18n/label :t/account-color)]
[react/touchable-highlight
{:on-press #(re-frame/dispatch [:show-popover
{:view [colors-popover color
(fn [new-color]
(swap! new-account assoc :color new-color)
(re-frame/dispatch [:hide-popover]))]
:style {:max-height "60%"}}])}
[react/view {:height 52 :margin-top 12 :background-color (or (:color @new-account) color)
:border-radius 8
:align-items :flex-end :justify-content :center :padding-right 12}
[icons/icon :main-icons/dropdown {:color colors/white}]]]
[property (i18n/label :t/type) (i18n/label :t/on-status-tree)]
[property (i18n/label :t/wallet-address)
[copyable-text/copyable-text-view
{:copied-text address}
[react/text {:style {:margin-top 6 :font-family "monospace"}} address]]]
[property (i18n/label :t/derivation-path)
[copyable-text/copyable-text-view
{:copied-text path}
[react/text {:style {:margin-top 6 :font-family "monospace"}} path]]]
[property (i18n/label :t/storage) (i18n/label :t/this-device)]]]]))

View File

@ -69,7 +69,7 @@
{:theme :action
:title :t/account-settings
:icon :main-icons/info
:disabled? true}]
:on-press #(hide-sheet-and-dispatch [:navigate-to :account-settings])}]
;; Commented out for v1
#_[list-item/list-item
{:theme :action

View File

@ -8,10 +8,7 @@
[status-im.ui.components.colors :as colors]
[status-im.ui.components.list-item.views :as list-item]
[status-im.ui.components.common.common :as components.common]
[status-im.ui.components.icons.vector-icons :as icons]
[status-im.ui.components.text-input.view :as text-input]
[reagent.core :as reagent]
[clojure.string :as string]
[cljs.spec.alpha :as spec]
[status-im.multiaccounts.db :as multiaccounts.db]))
@ -38,65 +35,6 @@
#(re-frame/dispatch
[:navigate-to :add-new-account-password])}]]])
(defview colors-popover [selected-color]
(letsubs [width [:dimensions/window-width]]
[react/view {:padding-bottom 16}
[react/scroll-view {:style {:margin 16}}
(doall
(for [color colors/account-colors]
^{:key color}
[react/touchable-highlight {:on-press #(do
(re-frame/dispatch [:set-in [:generate-account :account :color] color])
(re-frame/dispatch [:hide-popover]))}
[react/view {:height 52 :background-color color :border-radius 8 :width (* 0.7 width)
:justify-content :center :padding-left 12 :margin-bottom 16}
[react/view {:height 32 :width 32 :border-radius 20 :align-items :center :justify-content :center
:background-color colors/black-transparent}
(when (= selected-color color)
[icons/icon :main-icons/check {:color colors/white}])]]]))]
[components.common/button {:on-press #(re-frame/dispatch [:hide-popover])
:label (i18n/label :t/cancel)
:background? false}]]))
(defview account-added []
(letsubs [{:keys [account]} [:generate-account]]
[react/keyboard-avoiding-view {:flex 1}
[status-bar/status-bar]
[react/scroll-view {:keyboard-should-persist-taps :handled
:style {:margin-top 70 :flex 1}}
[react/view {:align-items :center :padding-horizontal 40}
[react/view {:height 40 :width 40 :border-radius 20 :align-items :center :justify-content :center
:background-color (:color account)}
[icons/icon :main-icons/check {:color colors/white}]]
[react/text {:style {:typography :header :margin-top 16}}
(i18n/label :t/account-added)]
[react/text {:style {:color colors/gray :text-align :center :margin-top 16 :line-height 22}}
(i18n/label :t/you-can-change-account)]]
[react/view {:height 52}]
[react/view {:margin-horizontal 16}
[text-input/text-input-with-label
{:label (i18n/label :t/account-name)
:auto-focus false
:default-value (:name account)
:on-change-text #(re-frame/dispatch [:set-in [:generate-account :account :name] %])}]
[react/text {:style {:margin-top 30}} (i18n/label :t/account-color)]
[react/touchable-highlight {:on-press #(re-frame/dispatch [:show-popover {:view [colors-popover (:color account)]
:style {:max-height "60%"}}])}
[react/view {:height 52 :margin-top 12 :background-color (:color account) :border-radius 8
:align-items :flex-end :justify-content :center :padding-right 12}
[icons/icon :main-icons/dropdown {:color colors/white}]]]]]
[react/view {:style {:flex-direction :row
:justify-content :flex-end
:align-self :stretch
:padding-vertical 16
:border-top-width 1
:border-top-color colors/gray-lighter
:padding-right 12}}
[components.common/bottom-button {:label (i18n/label :t/finish)
:on-press #(re-frame/dispatch [:wallet.accounts/save-generated-account])
:disabled? (string/blank? (:name account))
:forward? true}]]]))
(defview password []
(letsubs [{:keys [error]} [:generate-account]
entered-password (reagent/atom "")]
@ -130,4 +68,4 @@
:on-press #(re-frame/dispatch
[:wallet.accounts/generate-new-account @entered-password])
:disabled? (not (spec/valid? ::multiaccounts.db/password @entered-password))
:forward? true}]]]]))
:forward? true}]]]]))

View File

@ -69,7 +69,7 @@
(- @width 32)
(eip681/generate-uri address {:chain-id chain-id})])
[copyable-text/copyable-text-view
{:label :t/ens-wallet-address
{:label :t/wallet-address
:container-style {:margin-top 12 :margin-bottom 4}
:copied-text (eip55/address->checksum address)}
[react/text {:number-of-lines 1

View File

@ -129,7 +129,7 @@
[react/view
{:style (merge {:background-color :white} components.styles/flex)}
[list/section-list {:sections [{:title
(i18n/label :t/transactions-filter-type)
(i18n/label :t/type)
:key :type
:render-fn render-item-filter
:data filters}]

View File

@ -87,6 +87,16 @@
(navigation/navigate-to-cofx :account-added nil)))
(fx/defn save-account
{:events [:wallet.accounts/save-account]}
[{:keys [db] :as cofx} account {:keys [name color]}]
(let [{:keys [accounts]} (:multiaccount db)
new-account (cond-> account
name (assoc :name name)
color (assoc :color color))
new-accounts (replace {account new-account} accounts)]
(multiaccounts.update/multiaccount-update cofx {:accounts new-accounts} nil)))
(fx/defn save-generated-account
{:events [:wallet.accounts/save-generated-account]}
[{:keys [db] :as cofx}]
(let [{:keys [accounts latest-derived-path]} (:multiaccount db)
@ -100,4 +110,4 @@
(multiaccounts.update/multiaccount-update {:accounts (conj accounts account)
:latest-derived-path (inc latest-derived-path)} nil)
(wallet/update-balances nil)
(navigation/navigate-to-cofx :wallet nil)))))
(navigation/navigate-to-cofx :wallet nil)))))

View File

@ -416,7 +416,7 @@
:ens-username-taken
:ens-usernames
:ens-usernames-details
:ens-wallet-address
:wallet-address
:ens-want-custom-domain
:ens-want-domain
:ens-welcome-hints
@ -979,7 +979,7 @@
:transactions
:transactions-filter-select-all
:transactions-filter-title
:transactions-filter-type
:type
:transactions-history
:transactions-history-empty
:transactions-sign

View File

@ -81,7 +81,7 @@
"one": "kontakt",
"other": "kontakty(ů)"
},
"transactions-filter-type": "Typ",
"type": "Typ",
"next": "Další",
"recent": "Poslední",
"status": "Status",

View File

@ -118,7 +118,7 @@
"other": "Kontakte"
},
"gas-used": "Gas verbraucht",
"transactions-filter-type": "Typ",
"type": "Typ",
"next": "Weiter",
"recent": "Kürzliche Status",
"open-on-etherscan": "Auf Etherscan.io öffnen",

View File

@ -124,7 +124,7 @@
"other": "επαφές"
},
"gas-used": "χρησιμοποιημένο Gas",
"transactions-filter-type": "Τύπος",
"type": "Τύπος",
"next": "Επόμενο",
"recent": "Πρόσφατες καταστάσεις",
"open-on-etherscan": "Άνοιγμα στο Etherscan.io",

View File

@ -394,7 +394,7 @@
"ens-username-you-can-follow-progress": "You can follow the progress in the Transaction History section of your wallet.",
"ens-usernames": "ENS usernames",
"ens-usernames-details": "Register a universal username to be easily recognized by other users",
"ens-wallet-address": "Wallet address",
"wallet-address": "Wallet address",
"ens-want-custom-domain": "I own a name on another domain",
"ens-want-domain": "I want a stateofus.eth domain",
"ens-welcome-hints": "ENS names transform those crazy-long addresses into unique usernames.",
@ -979,7 +979,7 @@
"transactions": "Transactions",
"transactions-filter-select-all": "Select all",
"transactions-filter-title": "Filter history",
"transactions-filter-type": "Type",
"type": "Type",
"transactions-history": "Transaction history",
"transactions-history-empty": "No transactions in your history yet",
"transactions-sign": "Sign",
@ -1113,5 +1113,9 @@
"lock-app-with": "Lock app with",
"grant-face-id-permissions": "To grant the required Face ID permission, please go to your system settings and make sure that Status > Face ID is selected",
"request-feature": "Request a feature",
"select-account-dapp": "Select the account you wish to use with Dapps"
"select-account-dapp": "Select the account you wish to use with Dapps",
"apply": "Apply",
"on-status-tree": "On Status tree",
"derivation-path": "Derivation path",
"storage": "Storage"
}

View File

@ -117,7 +117,7 @@
"other": "contactos"
},
"gas-used": "Gas usado",
"transactions-filter-type": "Tipo",
"type": "Tipo",
"next": "Siguiente",
"recent": "Estados recientes",
"open-on-etherscan": "Abrir en Etherscan.io",

View File

@ -466,7 +466,7 @@
"transactions": "Transacciones",
"transactions-filter-select-all": "Seleccionar todo",
"transactions-filter-title": "Filtrar historial",
"transactions-filter-type": "Tipo",
"type": "Tipo",
"transactions-history": "Historial de transacciones",
"transactions-history-empty": "Aún no hay transacciones en tu historial",
"transactions-sign": "Firmar",

View File

@ -469,7 +469,7 @@
"transactions": "تراکنش ها",
"transactions-filter-select-all": "انتخاب همه",
"transactions-filter-title": "فیلتر تاریخچه",
"transactions-filter-type": "نوع",
"type": "نوع",
"transactions-history": "سابقه تراکنش",
"transactions-history-empty": "هنوز هیچ تراکنشی در تاریخچه ثبت نشده",
"transactions-sign": "امضا کردن",

View File

@ -382,7 +382,7 @@
"ens-username-taken": "Nom d'utilisateur déjà pris :(",
"ens-usernames": "Noms d'utilisateurs ENS",
"ens-usernames-details": "Enregistrer un nom d'utilisateur universel pour être facilement reconnu par les autres utilisateurs",
"ens-wallet-address": "Adresse portefeuille",
"wallet-address": "Adresse portefeuille",
"ens-want-custom-domain": "Je possède un nom sur un autre domaine",
"ens-want-domain": "Je veux un domaine stateofus.eth",
"ens-welcome-hints": "Les noms ENS transforment ces adresses d'une longueur insensée en noms d'utilisateur uniques.",
@ -937,7 +937,7 @@
"transactions": "Transactions",
"transactions-filter-select-all": "Tout sélectionner",
"transactions-filter-title": "Filtrer l'historique",
"transactions-filter-type": "Type",
"type": "Type",
"transactions-history": "Historique des transactions",
"transactions-history-empty": "Aucune transaction dans votre historique pour le moment",
"transactions-sign": "Connecter",

View File

@ -117,7 +117,7 @@
"other": "contatti"
},
"gas-used": "Gas usato",
"transactions-filter-type": "Tipo",
"type": "Tipo",
"next": "Avanti",
"recent": "Stati recenti",
"open-on-etherscan": "Apri su Etherscan.io",

View File

@ -380,7 +380,7 @@
"ens-username-taken": "ユーザー名はすでに使用されています :(",
"ens-usernames": "ENSユーザー名",
"ens-usernames-details": "他のユーザーが簡単に認識できるユニバーサルユーザー名を登録する",
"ens-wallet-address": "ウォレットアドレス",
"wallet-address": "ウォレットアドレス",
"ens-want-custom-domain": "他のドメイン名を所有しています",
"ens-want-domain": "stateofus.ethのドメインが欲しい",
"ens-welcome-hints": "ENSユーザー名は長すぎるアドレスを固有のユーザー名に変換します",
@ -940,7 +940,7 @@
"transactions": "トランザクション",
"transactions-filter-select-all": "すべて選択",
"transactions-filter-title": "履歴をフィルタする",
"transactions-filter-type": "タイプ",
"type": "タイプ",
"transactions-history": "トランザクション履歴",
"transactions-history-empty": "トランザクション履歴がまだありません",
"transactions-sign": "署名",

View File

@ -391,7 +391,7 @@
"ens-username-taken": "이미 사용 중인 이름입니다 :(",
"ens-usernames": "ENS 사용자 이름",
"ens-usernames-details": "검색 가능한 아이디 등록",
"ens-wallet-address": "지갑 주소",
"wallet-address": "지갑 주소",
"ens-want-custom-domain": "이미 다른 도메인의 이름을 가지고 있습니다",
"ens-want-domain": "stateofus.eth 도메인을 원합니다.",
"ens-welcome-hints": "ENS 이름은 복잡하고 긴 해시 주소를 직관적인 별칭으로 변환합니다",
@ -965,7 +965,7 @@
"transactions": "거래",
"transactions-filter-select-all": "모두 선택",
"transactions-filter-title": "거래내역 필터",
"transactions-filter-type": "종류",
"type": "종류",
"transactions-history": "거래 내역",
"transactions-history-empty": "거래 내역이 없습니다",
"transactions-sign": "승인",

View File

@ -117,7 +117,7 @@
"other": "kontaktai"
},
"gas-used": "Gas sunaudota",
"transactions-filter-type": "Tipas",
"type": "Tipas",
"next": "Sekantis",
"recent": "Paskiausios būsenos",
"open-on-etherscan": "Atidaryti Etherscan",

View File

@ -512,7 +512,7 @@
"transactions": "Transaksi",
"transactions-filter-select-all": "Pilih semua",
"transactions-filter-title": "Tapis sejarah",
"transactions-filter-type": "Jenis",
"type": "Jenis",
"transactions-history": "Sejarah transaksi",
"transactions-history-empty": "Tiada transaksi dalam sejarah anda lagi",
"transactions-sign": "Ditandatangan",

View File

@ -82,7 +82,7 @@
"one": "kontakt",
"other": "kontaker"
},
"transactions-filter-type": "Type",
"type": "Type",
"next": "Neste",
"recent": "Nylig",
"status": "Status",

View File

@ -492,7 +492,7 @@
"transactions": "Transaksi",
"transactions-filter-select-all": "Pilih semua",
"transactions-filter-title": "Tapis sejarah",
"transactions-filter-type": "Jenis",
"type": "Jenis",
"transactions-history": "Sejarah transaksi",
"transactions-history-empty": "तपाईको इतिहासमा अझै कुनै लेनदेन छैन",
"transactions-sign": "Ditandatangan",

View File

@ -450,7 +450,7 @@
"transactions": "Transakcje",
"transactions-filter-select-all": "Zaznacz wszystko",
"transactions-filter-title": "Filtruj",
"transactions-filter-type": "Rodzaj",
"type": "Rodzaj",
"transactions-history": "Historia transakcji",
"transactions-history-empty": "Brak transakcji w Twojej historii",
"transactions-sign": "Podpisz",

View File

@ -408,7 +408,7 @@
"ens-username-taken": "Имя пользователя уже занято:(",
"ens-usernames": "ENS имена пользователей",
"ens-usernames-details": "Зарегистрируйте универсальное имя пользователя, чтобы его могли легко узнать другие пользователи.",
"ens-wallet-address": "Адрес кошелька",
"wallet-address": "Адрес кошелька",
"ens-want-custom-domain": "У меня есть имя на другом домене",
"ens-want-domain": "Я хочу домен stateofus.eth",
"ens-welcome-hints": "ENS имена преобразуют эти невероятно длинные адреса в уникальные имена пользователей",
@ -985,7 +985,7 @@
"transactions": "Транзакции",
"transactions-filter-select-all": "Выбрать все",
"transactions-filter-title": "Фильтр истории",
"transactions-filter-type": "Тип",
"type": "Тип",
"transactions-history": "История транзакций",
"transactions-history-empty": "В вашей истории еще нет транзакций",
"transactions-sign": "Подписать",

View File

@ -117,7 +117,7 @@
"other": "контаката"
},
"gas-used": "Искоришћени гас",
"transactions-filter-type": "Тип",
"type": "Тип",
"next": "Следећи",
"recent": "Нови статуси",
"open-on-etherscan": "Отвори Etherscan.io",

View File

@ -114,7 +114,7 @@
"other": "kontakata"
},
"gas-used": "Iskorišćeni gas",
"transactions-filter-type": "Tip",
"type": "Tip",
"next": "Sledeći",
"recent": "Novi statusi",
"open-on-etherscan": "Otvori Etherscan.io",

View File

@ -118,7 +118,7 @@
"other": "kontakter"
},
"gas-used": "Gas använt",
"transactions-filter-type": "Typ",
"type": "Typ",
"next": "Nästa",
"recent": "Senaste",
"open-on-etherscan": "Öppna på Etherscan.io",

View File

@ -118,7 +118,7 @@
"other": "контакти"
},
"gas-used": "Використаний Газ",
"transactions-filter-type": "Тип",
"type": "Тип",
"next": "Далі",
"recent": "Останні статуси",
"open-on-etherscan": "Відкрити посилання на Etherscan.io",

View File

@ -390,7 +390,7 @@
"ens-username-taken": "用户名已被占用:(",
"ens-usernames": "ENS用户名",
"ens-usernames-details": "注册通用用户名,以便其他用户轻松找到你",
"ens-wallet-address": "钱包地址",
"wallet-address": "钱包地址",
"ens-want-custom-domain": "我在另一个域名上拥有一个名称",
"ens-want-domain": "我想要一个stateofus.eth域名",
"ens-welcome-hints": "ENS名称将那些冗长的地址转换为唯一的用户名。",
@ -961,7 +961,7 @@
"transactions": "交易",
"transactions-filter-select-all": "全部选中",
"transactions-filter-title": "过滤历史记录",
"transactions-filter-type": "类型",
"type": "类型",
"transactions-history": "历史记录",
"transactions-history-empty": "暂无交易历史记录",
"transactions-sign": "签名",

View File

@ -360,7 +360,7 @@
"ens-username-taken": "用户名已被占用:(",
"ens-usernames": "ENS用户名",
"ens-usernames-details": "注册通用用户名,以便其他用户轻松找到你",
"ens-wallet-address": "钱包地址",
"wallet-address": "钱包地址",
"ens-want-custom-domain": "我在另一个域名上拥有一个名称",
"ens-want-domain": "我想要一个stateofus.eth域名",
"ens-welcome-hints": "ENS名称将那些冗长的地址转换为唯一的用户名。",
@ -895,7 +895,7 @@
"transactions": "交易",
"transactions-filter-select-all": "全部选中",
"transactions-filter-title": "过滤历史记录",
"transactions-filter-type": "类型",
"type": "类型",
"transactions-history": "历史记录",
"transactions-history-empty": "暂无交易历史记录",
"transactions-sign": "签名",

View File

@ -117,7 +117,7 @@
"other": "聯繫人"
},
"gas-used": "使用的Gas",
"transactions-filter-type": "類型",
"type": "類型",
"next": "下一個",
"recent": "最近",
"open-on-etherscan": "打開 Etherscan.io",

View File

@ -117,7 +117,7 @@
"other": "聯繫人"
},
"gas-used": "使用的Gas",
"transactions-filter-type": "類型",
"type": "類型",
"next": "下一個",
"recent": "最近",
"open-on-etherscan": "打開 Etherscan.io",

View File

@ -117,7 +117,7 @@
"other": "聯絡人"
},
"gas-used": "使用的 Gas",
"transactions-filter-type": "型別",
"type": "型別",
"next": "下一個",
"recent": "最近",
"open-on-etherscan": "開啟 Etherscan.io",

View File

@ -117,7 +117,7 @@
"other": "聯絡人"
},
"gas-used": "使用的 Gas",
"transactions-filter-type": "型別",
"type": "型別",
"next": "下一個",
"recent": "最近",
"open-on-etherscan": "開啟 Etherscan.io",