[#10105] Add set max to Send transaction

Signed-off-by: andrey <motor4ik@gmail.com>
This commit is contained in:
andrey 2020-06-25 15:17:35 +02:00
parent 7f4476b253
commit 24114f7fe8
No known key found for this signature in database
GPG Key ID: 89B67245FD2F0272
9 changed files with 200 additions and 138 deletions

View File

@ -14,7 +14,7 @@
"eth_getBalance"
{:on-result money/bignumber}
"eth_estimateGas"
{:on-result #(money/bignumber (int (* % 1.2)))}
{:on-result #(money/bignumber (if (= (int %) 21000) % (int (* % 1.2))))}
"eth_gasPrice"
{:on-result money/bignumber}
"eth_getBlockByHash"

View File

@ -370,77 +370,73 @@
"Formats an amount of a currency based on the currency pattern
If currency-symbol? is false, the currency symbol is excluded from the
formatting"
([value currency-code]
(format-currency value currency-code true))
([value currency-code currency-symbol?]
(.addTier2Support ^js goog.i18n.currency)
(let [currency-code-to-nfs-map {"ZAR" ^js goog.i18n.NumberFormatSymbols_af
"ETB" ^js goog.i18n.NumberFormatSymbols_am
"EGP" ^js goog.i18n.NumberFormatSymbols_ar
"DZD" ^js goog.i18n.NumberFormatSymbols_ar_DZ
"AZN" ^js goog.i18n.NumberFormatSymbols_az
"BYN" ^js goog.i18n.NumberFormatSymbols_be
"BGN" ^js goog.i18n.NumberFormatSymbols_bg
"BDT" ^js goog.i18n.NumberFormatSymbols_bn
"EUR" ^js goog.i18n.NumberFormatSymbols_br
"BAM" ^js goog.i18n.NumberFormatSymbols_bs
"USD" ^js goog.i18n.NumberFormatSymbols_en
"CZK" ^js goog.i18n.NumberFormatSymbols_cs
"GBP" ^js goog.i18n.NumberFormatSymbols_cy
"DKK" ^js goog.i18n.NumberFormatSymbols_da
"CHF" ^js goog.i18n.NumberFormatSymbols_de_CH
"AUD" ^js goog.i18n.NumberFormatSymbols_en_AU
"CAD" ^js goog.i18n.NumberFormatSymbols_en_CA
"INR" ^js goog.i18n.NumberFormatSymbols_en_IN
"SGD" ^js goog.i18n.NumberFormatSymbols_en_SG
"MXN" ^js goog.i18n.NumberFormatSymbols_es_419
"IRR" ^js goog.i18n.NumberFormatSymbols_fa
"PHP" ^js goog.i18n.NumberFormatSymbols_fil
"ILS" ^js goog.i18n.NumberFormatSymbols_he
"HRK" ^js goog.i18n.NumberFormatSymbols_hr
"HUF" ^js goog.i18n.NumberFormatSymbols_hu
"AMD" ^js goog.i18n.NumberFormatSymbols_hy
"IDR" ^js goog.i18n.NumberFormatSymbols_id
"ISK" ^js goog.i18n.NumberFormatSymbols_is
"JPY" ^js goog.i18n.NumberFormatSymbols_ja
"GEL" ^js goog.i18n.NumberFormatSymbols_ka
"KZT" ^js goog.i18n.NumberFormatSymbols_kk
"KHR" ^js goog.i18n.NumberFormatSymbols_km
"KRW" ^js goog.i18n.NumberFormatSymbols_ko
"KGS" ^js goog.i18n.NumberFormatSymbols_ky
"CDF" ^js goog.i18n.NumberFormatSymbols_ln
"LAK" ^js goog.i18n.NumberFormatSymbols_lo
"MKD" ^js goog.i18n.NumberFormatSymbols_mk
"MNT" ^js goog.i18n.NumberFormatSymbols_mn
"MDL" ^js goog.i18n.NumberFormatSymbols_mo
"MYR" ^js goog.i18n.NumberFormatSymbols_ms
"MMK" ^js goog.i18n.NumberFormatSymbols_my
"NOK" ^js goog.i18n.NumberFormatSymbols_nb
"NPR" ^js goog.i18n.NumberFormatSymbols_ne
"PLN" ^js goog.i18n.NumberFormatSymbols_pl
"BRL" ^js goog.i18n.NumberFormatSymbols_pt
"RON" ^js goog.i18n.NumberFormatSymbols_ro
"RUB" ^js goog.i18n.NumberFormatSymbols_ru
"RSD" ^js goog.i18n.NumberFormatSymbols_sh
"LKR" ^js goog.i18n.NumberFormatSymbols_si
"ALL" ^js goog.i18n.NumberFormatSymbols_sq
"SEK" ^js goog.i18n.NumberFormatSymbols_sv
"TZS" ^js goog.i18n.NumberFormatSymbols_sw
"THB" ^js goog.i18n.NumberFormatSymbols_th
"TRY" ^js goog.i18n.NumberFormatSymbols_tr
"UAH" ^js goog.i18n.NumberFormatSymbols_uk
"PKR" ^js goog.i18n.NumberFormatSymbols_ur
"UZS" ^js goog.i18n.NumberFormatSymbols_uz
"VND" ^js goog.i18n.NumberFormatSymbols_vi
"CNY" ^js goog.i18n.NumberFormatSymbols_zh
"HKD" ^js goog.i18n.NumberFormatSymbols_zh_HK
"TWD" ^js goog.i18n.NumberFormatSymbols_zh_TW}
nfs (or (get currency-code-to-nfs-map currency-code)
^js goog.i18n.NumberFormatSymbols_en)]
(.format
^js (new ^js goog.i18n.NumberFormat
(let [pattern (.-CURRENCY_PATTERN ^js nfs)]
(if currency-symbol?
pattern
(string/replace pattern #"\s*¤\s*" ""))))
value))))
[value currency-code]
(.addTier2Support ^js goog.i18n.currency)
(let [currency-code-to-nfs-map {"ZAR" ^js goog.i18n.NumberFormatSymbols_af
"ETB" ^js goog.i18n.NumberFormatSymbols_am
"EGP" ^js goog.i18n.NumberFormatSymbols_ar
"DZD" ^js goog.i18n.NumberFormatSymbols_ar_DZ
"AZN" ^js goog.i18n.NumberFormatSymbols_az
"BYN" ^js goog.i18n.NumberFormatSymbols_be
"BGN" ^js goog.i18n.NumberFormatSymbols_bg
"BDT" ^js goog.i18n.NumberFormatSymbols_bn
"EUR" ^js goog.i18n.NumberFormatSymbols_br
"BAM" ^js goog.i18n.NumberFormatSymbols_bs
"USD" ^js goog.i18n.NumberFormatSymbols_en
"CZK" ^js goog.i18n.NumberFormatSymbols_cs
"GBP" ^js goog.i18n.NumberFormatSymbols_cy
"DKK" ^js goog.i18n.NumberFormatSymbols_da
"CHF" ^js goog.i18n.NumberFormatSymbols_de_CH
"AUD" ^js goog.i18n.NumberFormatSymbols_en_AU
"CAD" ^js goog.i18n.NumberFormatSymbols_en_CA
"INR" ^js goog.i18n.NumberFormatSymbols_en_IN
"SGD" ^js goog.i18n.NumberFormatSymbols_en_SG
"MXN" ^js goog.i18n.NumberFormatSymbols_es_419
"IRR" ^js goog.i18n.NumberFormatSymbols_fa
"PHP" ^js goog.i18n.NumberFormatSymbols_fil
"ILS" ^js goog.i18n.NumberFormatSymbols_he
"HRK" ^js goog.i18n.NumberFormatSymbols_hr
"HUF" ^js goog.i18n.NumberFormatSymbols_hu
"AMD" ^js goog.i18n.NumberFormatSymbols_hy
"IDR" ^js goog.i18n.NumberFormatSymbols_id
"ISK" ^js goog.i18n.NumberFormatSymbols_is
"JPY" ^js goog.i18n.NumberFormatSymbols_ja
"GEL" ^js goog.i18n.NumberFormatSymbols_ka
"KZT" ^js goog.i18n.NumberFormatSymbols_kk
"KHR" ^js goog.i18n.NumberFormatSymbols_km
"KRW" ^js goog.i18n.NumberFormatSymbols_ko
"KGS" ^js goog.i18n.NumberFormatSymbols_ky
"CDF" ^js goog.i18n.NumberFormatSymbols_ln
"LAK" ^js goog.i18n.NumberFormatSymbols_lo
"MKD" ^js goog.i18n.NumberFormatSymbols_mk
"MNT" ^js goog.i18n.NumberFormatSymbols_mn
"MDL" ^js goog.i18n.NumberFormatSymbols_mo
"MYR" ^js goog.i18n.NumberFormatSymbols_ms
"MMK" ^js goog.i18n.NumberFormatSymbols_my
"NOK" ^js goog.i18n.NumberFormatSymbols_nb
"NPR" ^js goog.i18n.NumberFormatSymbols_ne
"PLN" ^js goog.i18n.NumberFormatSymbols_pl
"BRL" ^js goog.i18n.NumberFormatSymbols_pt
"RON" ^js goog.i18n.NumberFormatSymbols_ro
"RUB" ^js goog.i18n.NumberFormatSymbols_ru
"RSD" ^js goog.i18n.NumberFormatSymbols_sh
"LKR" ^js goog.i18n.NumberFormatSymbols_si
"ALL" ^js goog.i18n.NumberFormatSymbols_sq
"SEK" ^js goog.i18n.NumberFormatSymbols_sv
"TZS" ^js goog.i18n.NumberFormatSymbols_sw
"THB" ^js goog.i18n.NumberFormatSymbols_th
"TRY" ^js goog.i18n.NumberFormatSymbols_tr
"UAH" ^js goog.i18n.NumberFormatSymbols_uk
"PKR" ^js goog.i18n.NumberFormatSymbols_ur
"UZS" ^js goog.i18n.NumberFormatSymbols_uz
"VND" ^js goog.i18n.NumberFormatSymbols_vi
"CNY" ^js goog.i18n.NumberFormatSymbols_zh
"HKD" ^js goog.i18n.NumberFormatSymbols_zh_HK
"TWD" ^js goog.i18n.NumberFormatSymbols_zh_TW}
nfs (or (get currency-code-to-nfs-map currency-code)
^js goog.i18n.NumberFormatSymbols_en)]
(.format
^js (new ^js goog.i18n.NumberFormat
(let [pattern (.-CURRENCY_PATTERN ^js nfs)]
(string/replace pattern #"\s*¤\s*" "")))
value)))

View File

@ -207,7 +207,7 @@
(prices/update-prices)
#(when-not gas
{:db (assoc-in (:db %) [:signing/edit-fee :gas-loading?] true)
:signing/update-estimated-gas {:obj tx-obj
:signing/update-estimated-gas {:obj (dissoc tx-obj :gasPrice)
:success-event :signing/update-estimated-gas-success
:error-event :signing/update-estimated-gas-error}})
#(when-not gasPrice

View File

@ -1077,7 +1077,7 @@
(-> balance-total-value
(money/with-precision 2)
str
(i18n/format-currency (:code currency) false))
(i18n/format-currency (:code currency)))
"0"))
"...")))
@ -1096,7 +1096,7 @@
(-> balance-total-value
(money/with-precision 2)
str
(i18n/format-currency (:code currency) false))
(i18n/format-currency (:code currency)))
"0"))
"...")))
@ -1182,7 +1182,7 @@
(money/crypto->fiat price)
(money/with-precision 2)
str
(i18n/format-currency (:code currency) false)))))))
(i18n/format-currency (:code currency))))))))
(re-frame/reg-sub
:wallet/visible-assets-with-values

View File

@ -326,7 +326,8 @@
" • "]
(if prices-loading?
[react/small-loading-indicator]
[react/text {:style {:color colors/black}} (i18n/format-currency converted-value (:code wallet-currency))])
[react/text {:style {:color colors/black}}
(i18n/format-currency converted-value (:code wallet-currency))])
[react/text {:style {:color colors/gray}} (str " " (:code wallet-currency))]]]}]))
(views/defview fee-item [prices wallet-currency fee-display-symbol fee gas-error gas-error-state prices-loading?]
@ -353,7 +354,8 @@
" • "]
(if prices-loading?
[react/small-loading-indicator]
[react/text {:style {:color colors/black}} (i18n/format-currency converted-fee-value (:code wallet-currency))])
[react/text {:style {:color colors/black}}
(i18n/format-currency converted-fee-value (:code wallet-currency))])
[react/text {:style {:color colors/gray}} (str " " (:code wallet-currency))]]
:chevron]))
:on-press #(re-frame/dispatch

View File

@ -12,4 +12,15 @@
:align-items :center
:justify-content :space-between
:padding-top (when-not small-screen? 16)
:padding-left 16})
:padding-left 16})
(def set-max-button
{:height 35
:border-radius 40
:background-color colors/blue-light
:margin-horizontal 12
:align-self :flex-start
:margin-bottom 12
:align-items :center
:justify-content :center
:padding-horizontal 12})

View File

@ -18,37 +18,34 @@
[status-im.ui.screens.wallet.send.sheets :as sheets]
[status-im.ui.screens.wallet.components.views :as components]
[status-im.utils.utils :as utils]
[status-im.ui.components.button :as button]
[status-im.ethereum.core :as ethereum]))
[status-im.ethereum.core :as ethereum]
[status-im.utils.money :as money]))
(defn header [{:keys [label small-screen? on-cancel]}]
(defn header [{:keys [label small-screen?]}]
[react/view (styles/header small-screen?)
[react/view {:flex 1}
[react/text {:style (merge {:typography :title-bold} (when small-screen? {:font-size 15}))}
(i18n/label (or label :t/send-transaction))]]
[button/button {:type :secondary
:container-style {:padding-horizontal 24}
:label (i18n/label :t/cancel)
:on-press on-cancel}]])
(i18n/label (or label :t/send-transaction))]]])
(defn asset-selector [{:keys [request? token from]}]
(defn asset-selector [{:keys [request? token from]} window-width]
(let [{:keys [name icon color]} token]
[react/touchable-highlight
{:style {:flex 1}
:on-press (when-not request? #(do
(re-frame/dispatch [:dismiss-keyboard])
(re-frame/dispatch [:bottom-sheet/show-sheet
{:content (fn [] [sheets/assets (:address from)])
:content-height 300}])))}
{:on-press (when-not request?
#(do
(re-frame/dispatch [:dismiss-keyboard])
(re-frame/dispatch [:bottom-sheet/show-sheet
{:content (fn [] [sheets/assets (:address from)])
:content-height 300}])))}
[react/view {:style {:flex-direction :row
:align-items :center
:flex 1 :margin-left 16}
:margin-left 16}
:accessibility-label :choose-asset-button}
(if icon
[list/item-image (assoc icon :style {:background-color colors/gray-lighter
:border-radius 50} :image-style {:width 32 :height 32})]
[chat-icon/custom-icon-view-list name color 32])
[react/text {:style {:margin-left 8 :flex-shrink 0.5}
[react/text {:style {:margin-left 8
:max-width (/ window-width 4)}
:number-of-lines 2}
(wallet.utils/display-symbol token)]
(when-not request?
@ -58,9 +55,10 @@
[list-item/list-item
{:icon [chat-icon/custom-icon-view-list (:name account) (:color account)]
:title (:name account)
:subtitle (str (wallet.utils/format-amount amount decimals)
" "
(wallet.utils/display-symbol token))
:subtitle (when token
(str (wallet.utils/format-amount amount decimals)
" "
(wallet.utils/display-symbol token)))
:accessories [:chevron]
:on-press #(do
(re-frame/dispatch [:dismiss-keyboard])
@ -70,40 +68,56 @@
(defn render-contact [contact from-chat?]
(if from-chat?
[list-item/list-item {:title (multiaccounts/displayed-name contact)
[list-item/list-item {:title (multiaccounts/displayed-name contact)
:subtitle (:address contact)
:icon (multiaccounts/displayed-photo contact)}]
:icon (multiaccounts/displayed-photo contact)}]
[list-item/list-item
{:title (utils/get-shortened-checksum-address
(if (string? contact) contact (:address contact)))
:subtitle (when-not contact (i18n/label :t/wallet-choose-recipient))
{:title (utils/get-shortened-checksum-address
(if (string? contact) contact (:address contact)))
:subtitle (when-not contact (i18n/label :t/wallet-choose-recipient))
:accessibility-label :choose-recipient-button
:on-press #(do
(re-frame/dispatch [:dismiss-keyboard])
(re-frame/dispatch [:bottom-sheet/show-sheet
{:content sheets/choose-recipient
:content-height 200}]))
:accessories [:chevron]}]))
:on-press #(do
(re-frame/dispatch [:dismiss-keyboard])
(re-frame/dispatch [:bottom-sheet/show-sheet
{:content sheets/choose-recipient
:content-height 200}]))
:accessories [:chevron]}]))
(defn set-max [token]
[react/touchable-highlight
{:on-press
#(when token
(re-frame/dispatch [:wallet.send/set-max-amount token]))}
[react/view {:style styles/set-max-button}
[react/text {:style {:color colors/blue}} (i18n/label :t/set-max)]]])
(defn fiat-value [amount {:keys [symbol]} prices wallet-currency]
(when-let [price (get-in prices [(keyword symbol) (keyword (:code wallet-currency)) :price])]
(let [norm-amount (js/parseFloat (money/normalize amount))
amount (if (js/isNaN norm-amount) 0 norm-amount)]
[react/text {:style {:color colors/gray :margin-left 16 :margin-bottom 8
:font-size 15 :line-height 22}}
(str (i18n/format-currency (* amount price) (:code wallet-currency)) " " (:code wallet-currency))])))
(views/defview sheet [_]
(views/letsubs [{:keys [amount-error amount-text
request?
from token to sign-enabled? from-chat?] :as tx}
[:wallet.send/prepare-transaction-with-balance]
prices [:prices]
wallet-currency [:wallet/currency]
window-height [:dimensions/window-height]
window-width [:dimensions/window-width]
keyboard-height [:keyboard-height]]
(let [small-screen? (< (- window-height keyboard-height) 450)
to-norm (ethereum/normalized-hex (if (string? to) to (:address to)))]
[react/view {:style (styles/sheet small-screen?)}
[header {:small-screen? small-screen?
:on-cancel #(re-frame/dispatch [:wallet/cancel-transaction-command])}]
[react/view {:flex-direction :row :padding-horizontal 24 :align-items :center
:flex 1
:margin-vertical (if small-screen? 8 16)}
[react/view {:flex-direction :row :padding-horizontal 16 :align-items :center
:margin-top 12 :margin-bottom 4}
[react/text-input
{:style {:font-size (if small-screen? 24 38)
:color (if amount-error colors/red colors/black)
:flex-shrink 1}
:max-width (- (* (/ window-width 4) 3) 106)
:color (if amount-error colors/red colors/black)}
:keyboard-type :decimal-pad
:auto-capitalize :words
:accessibility-label :amount-input
@ -112,13 +126,16 @@
:auto-focus true
:on-change-text #(re-frame/dispatch [:wallet.send/set-amount-text %])
:placeholder "0.0 "}]
[asset-selector tx]
[asset-selector tx window-width]
(when amount-error
[tooltip/tooltip (if from
amount-error
(i18n/label :t/select-account-first))
{:bottom-value 2
:font-size 12}])]
[fiat-value amount-text token prices wallet-currency]
(when-not (or request? from-chat?)
[set-max token])
[components/separator]
(when-not small-screen?
[list-item/list-item {:type :section-header :title :t/from}])
@ -135,7 +152,11 @@
[react/view {:flex 1}
[render-contact to from-chat?]]]
[toolbar/toolbar
{:center
{:left
{:label :t/cancel
:type :secondary
:on-press #(re-frame/dispatch [:wallet/cancel-transaction-command])}
:right
{:label (if (and (not request?) from-chat? (not to-norm)) :t/wallet-send :t/next)
:accessibility-label :send-transaction-bottom-sheet
:disabled? (not sign-enabled?)
@ -152,17 +173,19 @@
(views/letsubs [{:keys [amount-error amount-text from token sign-enabled?] :as tx}
[:wallet.request/prepare-transaction-with-balance]
window-height [:dimensions/window-height]
window-width [:dimensions/window-width]
prices [:prices]
wallet-currency [:wallet/currency]
keyboard-height [:keyboard-height]]
(let [small-screen? (< (- window-height keyboard-height) 450)]
[react/view {:style (styles/sheet small-screen?)}
[header {:small-screen? small-screen?
:label :t/request-transaction
:on-cancel #(re-frame/dispatch [:wallet/cancel-transaction-command])}]
[react/view {:flex-direction :row :padding-horizontal 24 :align-items :center
:label :t/request-transaction}]
[react/view {:flex-direction :row :padding-horizontal 24 :align-items :center
:margin-vertical (if small-screen? 8 16)}
[react/text-input
{:style {:font-size (if small-screen? 24 38)
:color (when amount-error colors/red)
{:style {:font-size (if small-screen? 24 38)
:color (when amount-error colors/red)
:flex-shrink 1}
:keyboard-type :decimal-pad
:auto-capitalize :words
@ -171,10 +194,11 @@
:auto-focus true
:on-change-text #(re-frame/dispatch [:wallet.request/set-amount-text %])
:placeholder "0.0 "}]
[asset-selector tx]
[asset-selector tx window-width]
(when amount-error
[tooltip/tooltip amount-error {:bottom-value 2
:font-size 12}])]
[fiat-value amount-text token prices wallet-currency]
[components/separator]
(when-not small-screen?
[list-item/list-item {:type :section-header :title :t/to}])
@ -184,7 +208,11 @@
[react/view {:flex 1}
[render-account from token :wallet.request/set-field]]]
[toolbar/toolbar
{:center
{:left
{:label :t/cancel
:type :secondary
:on-press #(re-frame/dispatch [:wallet/cancel-transaction-command])}
:right
{:label :t/wallet-request
:accessibility-label :request-transaction-bottom-sheet
:disabled? (not sign-enabled?)
@ -197,9 +225,8 @@
(let [small-screen? (< (- window-height keyboard-height) 450)]
[react/view {:style (styles/sheet small-screen?)}
[header {:small-screen? small-screen?
:label :t/select-account
:on-cancel #(re-frame/dispatch [:set :commands/select-account nil])}]
[react/view {:flex-direction :row :padding-horizontal 24 :align-items :center
:label :t/select-account}]
[react/view {:flex-direction :row :padding-horizontal 24 :align-items :center
:margin-vertical (if small-screen? 8 16)}]
(when-not small-screen?
[list-item/list-item {:type :section-header :title :t/from}])
@ -209,8 +236,12 @@
[react/view {:flex 1}
[render-account from nil ::commands/set-selected-account]]]
[toolbar/toolbar
{:center
{:label :t/select
{:left
{:label :t/cancel
:type :secondary
:on-press #(re-frame/dispatch [:set :commands/select-account nil])}
:right
{:label :t/share
:accessibility-label :select-account-bottom-sheet
:disabled? (nil? from)
:on-press #(re-frame/dispatch

View File

@ -23,7 +23,8 @@
[status-im.ethereum.ens :as ens]
[status-im.ethereum.stateofus :as stateofus]
[status-im.ui.components.bottom-sheet.core :as bottom-sheet]
[status-im.wallet.prices :as prices]))
[status-im.wallet.prices :as prices]
[status-im.wallet.utils :as wallet.utils]))
(defn get-balance
[{:keys [address on-success on-error]}]
@ -305,6 +306,24 @@
[{:keys [db]} amount]
{:db (assoc-in db [:wallet/prepare-transaction :amount-text] amount)})
(fx/defn wallet-send-gas-price-success
{:events [:wallet.send/update-gas-price-success]}
[{db :db} price]
{:db (assoc-in db [:wallet/prepare-transaction :gasPrice] price)})
(fx/defn set-max-amount
{:events [:wallet.send/set-max-amount]}
[{:keys [db]} {:keys [amount decimals symbol]}]
(let [^js gas (money/bignumber 21000)
^js gasPrice (get-in db [:wallet/prepare-transaction :gasPrice])
^js fee (when gasPrice (.times gas gasPrice))
amount-text (if (= :ETH symbol)
(when (and fee (money/sufficient-funds? fee amount))
(str (wallet.utils/format-amount (.minus amount fee) decimals)))
(str (wallet.utils/format-amount amount decimals)))]
(when amount-text
{:db (assoc-in db [:wallet/prepare-transaction :amount-text] amount-text)})))
(fx/defn set-and-validate-request-amount
{:events [:wallet.request/set-amount-text]}
[{:keys [db]} amount]
@ -466,7 +485,8 @@
(fx/defn on-recipient-address-resolved
{:events [::recipient-address-resolved]}
[{:keys [db]} address]
{:db (assoc-in db [:wallet/prepare-transaction :to :address] address)})
{:db (assoc-in db [:wallet/prepare-transaction :to :address] address)
:signing/update-gas-price {:success-event :wallet.send/update-gas-price-success}})
(fx/defn prepare-transaction-from-chat
{:events [:wallet/prepare-transaction-from-chat]}
@ -515,7 +535,8 @@
{:from account
:to nil
:symbol :ETH
:from-chat? false})})
:from-chat? false})
:signing/update-gas-price {:success-event :wallet.send/update-gas-price-success}})
(fx/defn cancel-transaction-command
{:events [:wallet/cancel-transaction-command]}

View File

@ -1156,5 +1156,6 @@
"tx-fail-description1" : "This transaction is likely to fail. Sign at your own risk using custom network fee.",
"tx-fail-description2" : "This transaction is likely to fail. Set a custom network fee to sign at your own risk.",
"set-custom-fee" : "Set custom fee",
"not-enough-snt": "Not enough SNT"
"not-enough-snt": "Not enough SNT",
"set-max": "Set max"
}