[#11502] Handle tx fetching failure
This commit is contained in:
parent
eaf463395a
commit
aac7a97e13
|
@ -59,7 +59,9 @@
|
||||||
[{:keys [db]} accounts]
|
[{:keys [db]} accounts]
|
||||||
(log/debug "[wallet-subs] recent-history-fetching-started"
|
(log/debug "[wallet-subs] recent-history-fetching-started"
|
||||||
"accounts" accounts)
|
"accounts" accounts)
|
||||||
{:db (transactions/update-fetching-status db accounts :recent? true)})
|
{:db (-> db
|
||||||
|
(transactions/update-fetching-status accounts :recent? true)
|
||||||
|
(assoc :wallet/recent-history-fetching-started? true))})
|
||||||
|
|
||||||
(fx/defn recent-history-fetching-ended
|
(fx/defn recent-history-fetching-ended
|
||||||
[{:keys [db] :as cofx} {:keys [accounts blockNumber]}]
|
[{:keys [db] :as cofx} {:keys [accounts blockNumber]}]
|
||||||
|
@ -73,7 +75,9 @@
|
||||||
wallet/remove-transactions-since-block blockNumber)
|
wallet/remove-transactions-since-block blockNumber)
|
||||||
(transactions/update-fetching-status accounts :recent? false)
|
(transactions/update-fetching-status accounts :recent? false)
|
||||||
(dissoc :wallet/waiting-for-recent-history?
|
(dissoc :wallet/waiting-for-recent-history?
|
||||||
:wallet/refreshing-history?))
|
:wallet/refreshing-history?
|
||||||
|
:wallet/fetching-error
|
||||||
|
:wallet/recent-history-fetching-started?))
|
||||||
:transactions/get-transfers
|
:transactions/get-transfers
|
||||||
{:chain-tokens (:wallet/all-tokens db)
|
{:chain-tokens (:wallet/all-tokens db)
|
||||||
:addresses (reduce
|
:addresses (reduce
|
||||||
|
@ -90,6 +94,13 @@
|
||||||
:historical? true}}
|
:historical? true}}
|
||||||
(wallet.core/restart-wallet-service-default)))
|
(wallet.core/restart-wallet-service-default)))
|
||||||
|
|
||||||
|
(fx/defn fetching-error
|
||||||
|
[{:keys [db] :as cofx} {:keys [message]}]
|
||||||
|
(fx/merge
|
||||||
|
cofx
|
||||||
|
{:db (assoc db :wallet/fetching-error message)}
|
||||||
|
(wallet.core/stop-wallet)))
|
||||||
|
|
||||||
(fx/defn new-wallet-event
|
(fx/defn new-wallet-event
|
||||||
[cofx {:keys [type blockNumber accounts newTransactions] :as event}]
|
[cofx {:keys [type blockNumber accounts newTransactions] :as event}]
|
||||||
(log/debug "[wallet-subs] new-wallet-event"
|
(log/debug "[wallet-subs] new-wallet-event"
|
||||||
|
@ -101,4 +112,5 @@
|
||||||
"reorg" (reorg cofx event)
|
"reorg" (reorg cofx event)
|
||||||
"recent-history-fetching" (recent-history-fetching-started cofx accounts)
|
"recent-history-fetching" (recent-history-fetching-started cofx accounts)
|
||||||
"recent-history-ready" (recent-history-fetching-ended cofx event)
|
"recent-history-ready" (recent-history-fetching-ended cofx event)
|
||||||
|
"fetching-history-error" (fetching-error cofx event)
|
||||||
(log/warn ::unknown-wallet-event :type type :event event)))
|
(log/warn ::unknown-wallet-event :type type :event event)))
|
||||||
|
|
|
@ -171,6 +171,7 @@
|
||||||
(reg-root-key-sub :wallet/favourites :wallet/favourites)
|
(reg-root-key-sub :wallet/favourites :wallet/favourites)
|
||||||
(reg-root-key-sub :wallet/refreshing-history? :wallet/refreshing-history?)
|
(reg-root-key-sub :wallet/refreshing-history? :wallet/refreshing-history?)
|
||||||
(reg-root-key-sub :wallet/buy-crypto-hidden :wallet/buy-crypto-hidden)
|
(reg-root-key-sub :wallet/buy-crypto-hidden :wallet/buy-crypto-hidden)
|
||||||
|
(reg-root-key-sub :wallet/fetching-error :wallet/fetching-error)
|
||||||
|
|
||||||
;;commands
|
;;commands
|
||||||
(reg-root-key-sub :commands/select-account :commands/select-account)
|
(reg-root-key-sub :commands/select-account :commands/select-account)
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
[status-im.wallet.utils :as wallet.utils]
|
[status-im.wallet.utils :as wallet.utils]
|
||||||
[status-im.ui.components.tabs :as tabs]
|
[status-im.ui.components.tabs :as tabs]
|
||||||
[quo.react-native :as rn]
|
[quo.react-native :as rn]
|
||||||
|
[quo.design-system.colors :as quo-colors]
|
||||||
[status-im.utils.utils :as utils.utils])
|
[status-im.utils.utils :as utils.utils])
|
||||||
(:require-macros [status-im.utils.views :as views]))
|
(:require-macros [status-im.utils.views :as views]))
|
||||||
|
|
||||||
|
@ -212,7 +213,8 @@
|
||||||
:onRefresh refresh-action}]))
|
:onRefresh refresh-action}]))
|
||||||
|
|
||||||
(views/defview account []
|
(views/defview account []
|
||||||
(views/letsubs [{:keys [name address] :as account} [:multiaccount/current-account]]
|
(views/letsubs [{:keys [name address] :as account} [:multiaccount/current-account]
|
||||||
|
fetching-error [:wallet/fetching-error]]
|
||||||
(let [anim-y (animation/create-value button-group-height)
|
(let [anim-y (animation/create-value button-group-height)
|
||||||
scroll-y (animation/create-value 0)]
|
scroll-y (animation/create-value 0)]
|
||||||
(anim-listener anim-y scroll-y)
|
(anim-listener anim-y scroll-y)
|
||||||
|
@ -228,6 +230,30 @@
|
||||||
(and
|
(and
|
||||||
@updates-counter
|
@updates-counter
|
||||||
@(re-frame/subscribe [:wallet/refreshing-history?])))}
|
@(re-frame/subscribe [:wallet/refreshing-history?])))}
|
||||||
|
(when fetching-error
|
||||||
|
[react/view {:style {:flex 1
|
||||||
|
:align-items :center
|
||||||
|
:margin 8}}
|
||||||
|
[icons/icon
|
||||||
|
:main-icons/warning
|
||||||
|
{:color :red
|
||||||
|
:container-style {:background-color (quo-colors/get-color :negative-02)
|
||||||
|
:height 40
|
||||||
|
:width 40
|
||||||
|
:border-radius 20
|
||||||
|
:align-items :center
|
||||||
|
:justify-content :center}}]
|
||||||
|
[react/view
|
||||||
|
{:style {:justify-content :center
|
||||||
|
:align-items :center
|
||||||
|
:margin-top 8
|
||||||
|
:margin-horizontal 67.5
|
||||||
|
:text-align :center}}
|
||||||
|
[quo/text
|
||||||
|
{:color :secondary
|
||||||
|
:size :small
|
||||||
|
:style {:text-align :center}}
|
||||||
|
(i18n/label :t/transfers-fetching-failure)]]])
|
||||||
[react/view {:padding-left 16}
|
[react/view {:padding-left 16}
|
||||||
[react/scroll-view {:horizontal true}
|
[react/scroll-view {:horizontal true}
|
||||||
[react/view {:flex-direction :row :padding-top 8 :padding-bottom 12}
|
[react/view {:flex-direction :row :padding-top 8 :padding-bottom 12}
|
||||||
|
|
|
@ -557,8 +557,12 @@
|
||||||
#(re-frame.core/dispatch [::restart])
|
#(re-frame.core/dispatch [::restart])
|
||||||
ms-20-min))]
|
ms-20-min))]
|
||||||
{:db (-> db
|
{:db (-> db
|
||||||
|
(update :wallet dissoc :fetching)
|
||||||
(assoc :wallet-service/state :stopped)
|
(assoc :wallet-service/state :stopped)
|
||||||
(assoc :wallet-service/restart-timeout timeout))
|
(assoc :wallet-service/restart-timeout timeout)
|
||||||
|
(dissoc :wallet/recent-history-fetching-started?
|
||||||
|
:wallet/waiting-for-recent-history?
|
||||||
|
:wallet/refreshing-history?))
|
||||||
::stop-wallet nil}))
|
::stop-wallet nil}))
|
||||||
|
|
||||||
(fx/defn start-wallet
|
(fx/defn start-wallet
|
||||||
|
@ -620,9 +624,11 @@
|
||||||
(fx/defn restart-on-pull
|
(fx/defn restart-on-pull
|
||||||
{:events [:wallet.ui/pull-to-refresh-history]}
|
{:events [:wallet.ui/pull-to-refresh-history]}
|
||||||
[{:keys [db now] :as cofx}]
|
[{:keys [db now] :as cofx}]
|
||||||
(let [last-pull (get db :wallet/last-pull-time)
|
(let [last-pull (get db :wallet/last-pull-time)
|
||||||
watching? (get db :wallet/watch-txs)]
|
watching? (get db :wallet/watch-txs)
|
||||||
|
fetching-history? (get db :wallet/recent-history-fetching-started?)]
|
||||||
(when (and (not watching?)
|
(when (and (not watching?)
|
||||||
|
(not fetching-history?)
|
||||||
(or (not last-pull)
|
(or (not last-pull)
|
||||||
(> (- now last-pull) pull-to-refresh-cooldown-period)))
|
(> (- now last-pull) pull-to-refresh-cooldown-period)))
|
||||||
(fx/merge
|
(fx/merge
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"_comment": "DO NOT EDIT THIS FILE BY HAND. USE 'scripts/update-status-go.sh <tag>' instead",
|
"_comment": "DO NOT EDIT THIS FILE BY HAND. USE 'scripts/update-status-go.sh <tag>' instead",
|
||||||
"owner": "status-im",
|
"owner": "status-im",
|
||||||
"repo": "status-go",
|
"repo": "status-go",
|
||||||
"version": "v0.65.0",
|
"version": "v0.66.1",
|
||||||
"commit-sha1": "cdca42b90f7fd5f302a5eb31802b9ae526d566d7",
|
"commit-sha1": "bf703254ba242293c39abd9102420be9e2cc2e25",
|
||||||
"src-sha256": "1qpq9y099bfa6x36afbimn2p5inzrsgbb8qzigmchl513mkhp5s1"
|
"src-sha256": "1xfrgil9nz5q2jmq86v4fhhkz0gnq02dhyq8bnavvi5j7qg1saw1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1349,5 +1349,6 @@
|
||||||
"has-permissions": "has permission to access",
|
"has-permissions": "has permission to access",
|
||||||
"connect-wallet": "Connect wallet",
|
"connect-wallet": "Connect wallet",
|
||||||
"open-chat": "Open chat",
|
"open-chat": "Open chat",
|
||||||
"favourite-description": "Your favourite websites will appear here"
|
"favourite-description": "Your favourite websites will appear here",
|
||||||
|
"transfers-fetching-failure": "Transfers history could not be updated. Check your connection and pull down to try again"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue