Compare commits

..
Author SHA1 Message Date
Yevheniia Berdnyk 767be39673 e2e: fix for collectibles tests 2025-03-04 00:09:00 +02:00
Parvesh Monu 714d966d48 fix Some of the message longtap options disappear until relogin after unmuting chat (#22220) (#22221) 2025-03-04 00:05:41 +05:30
Siddarth Kumar 11d66e5bc2 ci: fix nix-cache-job with nix-export 2025-03-03 15:39:12 +05:30
jakub 9d5f6d0b06 nix: replace yet another openjdk with headless version
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-02-27 14:21:18 +01:00
frank 48c83ef759 fix_: no log file (#22122)
* fix_: no log file

https://github.com/status-im/status-go/compare/c5e4eb1a...388fce10

* chore_: fix lint issue

* chore_: set error level for release build

https://github.com/status-im/status-go/compare/c5e4eb1a...ba8fd519
2025-02-27 19:46:28 +08:00
jakub c84fc71bf1 nix: use openjdk_headless to avoid pulling GTK
This saves a whole bunch of downloading.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-02-26 18:56:10 +01:00
38 changed files with 140 additions and 264 deletions
+2 -2
View File
@@ -2,7 +2,7 @@ DEBUG_WEBVIEW=0
ETHEREUM_DEV_CLUSTER=0 ETHEREUM_DEV_CLUSTER=0
EXTENSIONS=0 EXTENSIONS=0
GROUP_CHATS_ENABLED=1 GROUP_CHATS_ENABLED=1
LOG_LEVEL=debug LOG_LEVEL=error
MAILSERVER_CONFIRMATIONS_ENABLED=1 MAILSERVER_CONFIRMATIONS_ENABLED=1
MAINNET_WARNING_ENABLED=1 MAINNET_WARNING_ENABLED=1
PFS_ENCRYPTION_ENABLED=1 PFS_ENCRYPTION_ENABLED=1
@@ -20,6 +20,6 @@ FAST_CREATE_COMMUNITY_ENABLED=0
TEST_NETWORKS_ENABLED=0 TEST_NETWORKS_ENABLED=0
STATUS_PROXY_STAGE_NAME=prod STATUS_PROXY_STAGE_NAME=prod
FLAG_WALLET_CONNECT_ENABLED=1 FLAG_WALLET_CONNECT_ENABLED=1
API_LOGGING_ENABLED=1 API_LOGGING_ENABLED=0
SENTRY_ENABLED=1 SENTRY_ENABLED=1
SENTRY_ENVIRONMENT=production SENTRY_ENVIRONMENT=production
+1 -1
View File
@@ -1 +1 @@
2.33.0 2.32.0
+12 -3
View File
@@ -109,10 +109,19 @@ pipeline {
stage('Upload') { stage('Upload') {
steps { script { steps { script {
sshagent(credentials: ['nix-cache-ssh']) { sshagent(credentials: ['nix-cache-ssh']) {
nix.shell(""" nix.shell(
"""
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \ find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
-not -name '*.links' -and -not -name '*-status-mobile-*' \ -not -name "*.links" -and -not -name "*-status-mobile-*" \
| xargs nix copy --to ${NIX_SSH_REMOTE} -and -not -name "tmp-*" \
-print0 | xargs -0 nix-store -qR | sort -u > "${WORKSPACE_TMP}"/store-paths.txt
""",
pure: false
)
nix.shell(
"""
nix-store --export < "${WORKSPACE_TMP}"/store-paths.txt | \\
ssh ${env.NIX_SSHOPTS} ${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST} ${env.NIX_STORE_CMD} --import
""", """,
pure: false pure: false
) )
@@ -1,15 +1,15 @@
(ns quo.components.buttons.slide-button.constants) (ns quo.components.buttons.slide-button.constants)
(def ^:constant small-dimensions (def track-padding 4)
(def small-dimensions
{:track-height 40 {:track-height 40
:thumb 32}) :thumb 32})
(def ^:constant large-dimensions (def large-dimensions
{:track-height 48 {:track-height 48
:thumb 40}) :thumb 40})
(def ^:constant track-padding 4) (def disable-opacity 0.3)
(def ^:constant disable-opacity 0.3)
(def ^:constant default-width 300)
(def ^:constant reset-timeout-ms 500) (def default-width 300)
@@ -27,8 +27,7 @@
(when (and reached-end? (not sliding-complete?)) (when (and reached-end? (not sliding-complete?))
(set-sliding-complete true) (set-sliding-complete true)
(when on-complete (when on-complete
(js/setTimeout reset-fn constants/reset-timeout-ms) (on-complete reset-fn))))))
(on-complete))))))
(gesture/on-end (fn [event] (gesture/on-end (fn [event]
(let [x-translation (oops/oget event "translationX") (let [x-translation (oops/oget event "translationX")
reached-end? (>= x-translation track-width)] reached-end? (>= x-translation track-width)]
@@ -56,9 +55,10 @@
on-track-layout (rn/use-callback on-track-layout (rn/use-callback
#(set-track-width (oops/oget % "nativeEvent.layout.width"))) #(set-track-width (oops/oget % "nativeEvent.layout.width")))
reset-fn (rn/use-callback reset-fn (rn/use-callback
(fn [] (fn [keep-at-end-after-slide?]
(set-sliding-complete false) (set-sliding-complete false)
(animations/reset-track-position x-pos))) (when-not keep-at-end-after-slide?
(animations/reset-track-position x-pos))))
dimensions (rn/use-callback dimensions (rn/use-callback
(partial utils/get-dimensions (partial utils/get-dimensions
(or track-width constants/default-width) (or track-width constants/default-width)
@@ -1,13 +0,0 @@
(ns quo.components.common.new-feature-dot
(:require [quo.components.common.new-feature-gradient :as new-feature-gradient]))
(def ^:const size 8)
(defn view
[{:keys [style accessibility-label]}]
[new-feature-gradient/view
{:style (merge {:width size
:height size
:border-radius (/ size 2)}
style)
:accessibility-label accessibility-label}])
@@ -1,16 +0,0 @@
(ns quo.components.common.new-feature-gradient
(:require [quo.foundations.colors :as colors]
[quo.theme]
[react-native.linear-gradient :as linear-gradient]))
(defn view
[{:keys [style accessibility-label]}]
(let [theme (quo.theme/use-theme)]
[linear-gradient/linear-gradient
{:style style
:accessibility-label accessibility-label
:colors [(colors/resolve-color :yellow theme)
colors/new-feature-gradient-pink]
:use-angle true
:angle 78
:angle-center {:x 0.5 :y 0.5}}]))
@@ -33,12 +33,4 @@
networks-list]) networks-list])
(h/is-truthy (h/query-by-label-text :network-dropdown)) (h/is-truthy (h/query-by-label-text :network-dropdown))
(h/fire-event :press (h/query-by-label-text :network-dropdown)) (h/fire-event :press (h/query-by-label-text :network-dropdown))
(h/was-not-called on-press))) (h/was-not-called on-press))))
(h/test "Should display new chain indicator"
(h/render [network-dropdown/view
{:state :default
:show-new-chain-indicator? true}
networks-list])
(h/is-truthy (h/query-by-label-text :network-dropdown))
(h/is-truthy (h/query-by-label-text :new-chain-indicator))))
@@ -23,7 +23,3 @@
:opacity (if (= state :disabled) 0.3 1) :opacity (if (= state :disabled) 0.3 1)
:border-color (container-border-color props) :border-color (container-border-color props)
:align-items :center}) :align-items :center})
(def new-chain-indicator
{:position :absolute
:right 0})
@@ -1,13 +1,12 @@
(ns quo.components.dropdowns.network-dropdown.view (ns quo.components.dropdowns.network-dropdown.view
(:require (:require
[quo.components.common.new-feature-dot :as new-feature-dot]
[quo.components.dropdowns.network-dropdown.style :as style] [quo.components.dropdowns.network-dropdown.style :as style]
[quo.components.list-items.preview-list.view :as preview-list] [quo.components.list-items.preview-list.view :as preview-list]
[quo.theme :as quo.theme] [quo.theme :as quo.theme]
[react-native.core :as rn])) [react-native.core :as rn]))
(defn view (defn view
[{:keys [on-press state show-new-chain-indicator?] :as props} networks] [{:keys [on-press state] :as props} networks]
(let [theme (quo.theme/use-theme) (let [theme (quo.theme/use-theme)
[pressed? set-pressed] (rn/use-state false) [pressed? set-pressed] (rn/use-state false)
on-press-in (rn/use-callback #(set-pressed true)) on-press-in (rn/use-callback #(set-pressed true))
@@ -19,10 +18,6 @@
:on-press on-press :on-press on-press
:on-press-in on-press-in :on-press-in on-press-in
:on-press-out on-press-out} :on-press-out on-press-out}
(when show-new-chain-indicator?
[new-feature-dot/view
{:style style/new-chain-indicator
:accessibility-label :new-chain-indicator}])
[preview-list/view [preview-list/view
{:type :network {:type :network
:list-size (count networks) :list-size (count networks)
@@ -200,15 +200,12 @@
shown-name]])) shown-name]]))
(defn- wallet-networks-center (defn- wallet-networks-center
[{:keys [networks networks-on-press show-new-chain-indicator? background [{:keys [networks networks-on-press background center-content-container-style]}]
center-content-container-style]}]
[reanimated/view {:style center-content-container-style} [reanimated/view {:style center-content-container-style}
[network-dropdown/view [network-dropdown/view
{:state :default {:state :default
:on-press networks-on-press :on-press networks-on-press
:blur? (= background :blur) :blur? (= background :blur)} networks]])
:show-new-chain-indicator? show-new-chain-indicator?}
networks]])
(defn page-nav (defn page-nav
"Props: "Props:
@@ -64,20 +64,3 @@
{:margin-top 7 {:margin-top 7
:margin-bottom 2 :margin-bottom 2
:margin-left -1}) :margin-left -1})
(def new-feature-tag-container
{:margin-left 6
:border-radius 12
:justify-content :center})
(def new-feature-tag-gradient
{:border-radius 12
:position :absolute
:left 0
:right 0
:top 0
:bottom 0})
(def new-feature-tag-text
{:color colors/white
:margin-horizontal 5})
@@ -4,7 +4,6 @@
[quo.components.avatars.icon-avatar :as icon-avatar] [quo.components.avatars.icon-avatar :as icon-avatar]
[quo.components.avatars.user-avatar.view :as user-avatar] [quo.components.avatars.user-avatar.view :as user-avatar]
[quo.components.buttons.button.view :as button] [quo.components.buttons.button.view :as button]
[quo.components.common.new-feature-gradient :as new-feature-gradient]
[quo.components.icon :as icon] [quo.components.icon :as icon]
[quo.components.list-items.preview-list.view :as preview-list] [quo.components.list-items.preview-list.view :as preview-list]
[quo.components.markdown.text :as text] [quo.components.markdown.text :as text]
@@ -116,9 +115,7 @@
nil)]) nil)])
(defn view (defn view
[{:keys [title show-new-feature-tag? on-press action-props accessibility-label blur? container-style [{:keys [title on-press action-props accessibility-label blur? container-style content] :as props}]
content]
:as props}]
[rn/pressable [rn/pressable
{:style (merge style/container container-style) {:style (merge style/container container-style)
:on-press (or on-press (:on-change action-props)) :on-press (or on-press (:on-change action-props))
@@ -129,19 +126,10 @@
[rn/view {:style (style/left-sub-container props)} [rn/view {:style (style/left-sub-container props)}
[image-component props] [image-component props]
[rn/view {:style (style/left-container (:image props))} [rn/view {:style (style/left-container (:image props))}
[rn/view {:flex-direction :row} [text/text
[text/text {:weight :medium
{:weight :medium :style {:color (when blur? colors/white)}}
:style {:color (when blur? colors/white)}} title]
title]
(when show-new-feature-tag?
[rn/view {:style style/new-feature-tag-container}
[new-feature-gradient/view {:style style/new-feature-tag-gradient}]
[text/text
{:weight :semi-bold
:size :label
:style style/new-feature-tag-text}
(string/upper-case (i18n/label :t/new))]])]
[description-component props] [description-component props]
[tag-component props]]] [tag-component props]]]
[rn/view {:style (style/sub-container (:alignment action-props))} [rn/view {:style (style/sub-container (:alignment action-props))}
@@ -18,6 +18,5 @@
[:dropdown-on-press {:optional true} [:maybe fn?]] [:dropdown-on-press {:optional true} [:maybe fn?]]
[:networks {:optional true} [:networks {:optional true}
[:maybe [:sequential [:map [:source [:maybe :schema.common/image-source]]]]]] [:maybe [:sequential [:map [:source [:maybe :schema.common/image-source]]]]]]
[:dropdown-state {:optional true} [:maybe [:enum :default :disabled]]] [:dropdown-state {:optional true} [:maybe [:enum :default :disabled]]]]]]
[:show-new-chain-indicator? {:optional true} [:maybe :boolean]]]]]
:any]) :any])
@@ -25,7 +25,7 @@
bars)) bars))
(defn- view-info-top (defn- view-info-top
[{:keys [state balance networks dropdown-on-press dropdown-state show-new-chain-indicator?]}] [{:keys [state balance networks dropdown-on-press dropdown-state]}]
(let [theme (quo.theme/use-theme)] (let [theme (quo.theme/use-theme)]
[rn/view {:style style/container-info-top} [rn/view {:style style/container-info-top}
(if (= state :loading) (if (= state :loading)
@@ -36,10 +36,9 @@
:style (style/style-text-heading theme)} :style (style/style-text-heading theme)}
balance]) balance])
[network-dropdown/view [network-dropdown/view
{:state (or dropdown-state :default) {:state (or dropdown-state :default)
:blur? true :blur? true
:on-press dropdown-on-press :on-press dropdown-on-press}
:show-new-chain-indicator? show-new-chain-indicator?}
networks]])) networks]]))
(defn- view-metrics (defn- view-metrics
-2
View File
@@ -315,8 +315,6 @@
networks-short-name networks-short-name
socials)) socials))
(def new-feature-gradient-pink "#FF33A3")
(defn hex-string? (defn hex-string?
[s] [s]
(and (string? s) (string/starts-with? s "#"))) (and (string? s) (string/starts-with? s "#")))
@@ -26,7 +26,8 @@
:auth-button-label auth-button-label}])) :auth-button-label auth-button-label}]))
(vec (conj dependencies on-auth-success on-auth-fail))) (vec (conj dependencies on-auth-success on-auth-fail)))
on-slider-complete (rn/use-callback on-slider-complete (rn/use-callback
(fn [] (fn [reset-slider-fn]
(js/setTimeout #(reset-slider-fn false) 500)
(if (fn? on-complete) (if (fn? on-complete)
(on-complete) (on-complete)
(on-complete-callback))) (on-complete-callback)))
@@ -18,16 +18,11 @@
:padding-horizontal 36 :padding-horizontal 36
:padding-vertical 30 :padding-vertical 30
:background-color (colors/theme-colors colors/white colors/neutral-95 theme)}} :background-color (colors/theme-colors colors/white colors/neutral-95 theme)}}
[rn/text [rn/text {:style {:font-size 26 :color "#9F9FA5" :margin-bottom 36}}
{:style {:font-size 26
:color (colors/theme-colors "#8F8E94" "#9F9FA5" theme)
:margin-bottom 36}}
(i18n/label :t/ready-to-scan)] (i18n/label :t/ready-to-scan)]
[rn/image {:source (resources/get-image :nfc-prompt)}] [rn/image
[rn/text {:source (resources/get-image :nfc-prompt)}]
{:style {:font-size 16 [rn/text {:style {:font-size 16 :color :white :margin-vertical 36}}
:color (colors/theme-colors "#09101C" :white theme)
:margin-vertical 36}}
(if connected? (if connected?
(i18n/label :t/connected-dont-move) (i18n/label :t/connected-dont-move)
(i18n/label :t/hold-phone-near-keycard))] (i18n/label :t/hold-phone-near-keycard))]
@@ -37,12 +32,6 @@
(rf/dispatch [:keycard/hide-connection-sheet])) (rf/dispatch [:keycard/hide-connection-sheet]))
:style {:flex-direction :row}} :style {:flex-direction :row}}
[rn/view [rn/view
{:style {:background-color (colors/theme-colors "#D5D4DB" "#8E8E93" theme) {:style {:background-color "#8E8E93" :flex 1 :align-items :center :padding 18 :border-radius 10}}
:flex 1 [rn/text {:style {:color :white :font-size 16}}
:align-items :center
:padding 18
:border-radius 10}}
[rn/text
{:style {:color (colors/theme-colors "#09101C" :white theme)
:font-size 16}}
(i18n/label :t/cancel)]]]]])) (i18n/label :t/cancel)]]]]]))
@@ -7,7 +7,6 @@
[react-native.safe-area :as safe-area] [react-native.safe-area :as safe-area]
[status-im.common.floating-button-page.view :as floating-button-page] [status-im.common.floating-button-page.view :as floating-button-page]
[status-im.contexts.settings.wallet.saved-addresses.add-address-to-save.style :as style] [status-im.contexts.settings.wallet.saved-addresses.add-address-to-save.style :as style]
[status-im.contexts.wallet.common.utils :as utils]
[status-im.contexts.wallet.common.validation :as validation] [status-im.contexts.wallet.common.validation :as validation]
[utils.address :as utils-address] [utils.address :as utils-address]
[utils.debounce :as debounce] [utils.debounce :as debounce]
@@ -160,7 +159,7 @@
(fn [clipboard-text] (fn [clipboard-text]
(when-not (string/blank? clipboard-text) (when-not (string/blank? clipboard-text)
(-> clipboard-text (-> clipboard-text
utils/on-paste-address-or-ens utils-address/extract-address-without-chains-info
on-change-text))))) on-change-text)))))
on-press-continue (rn/use-callback on-press-continue (rn/use-callback
(fn [] (fn []
@@ -7,7 +7,6 @@
[reagent.core :as reagent] [reagent.core :as reagent]
[status-im.common.floating-button-page.view :as floating-button-page] [status-im.common.floating-button-page.view :as floating-button-page]
[status-im.contexts.wallet.add-account.add-address-to-watch.style :as style] [status-im.contexts.wallet.add-account.add-address-to-watch.style :as style]
[status-im.contexts.wallet.common.utils :as utils]
[status-im.contexts.wallet.common.validation :as validation] [status-im.contexts.wallet.common.validation :as validation]
[status-im.subs.wallet.add-account.address-to-watch] [status-im.subs.wallet.add-account.address-to-watch]
[utils.address :as utils-address] [utils.address :as utils-address]
@@ -43,7 +42,7 @@
paste-on-input #(clipboard/get-string paste-on-input #(clipboard/get-string
(fn [clipboard-text] (fn [clipboard-text]
(-> clipboard-text (-> clipboard-text
utils/on-paste-address-or-ens utils.address/extract-address-without-chains-info
on-change-text)))] on-change-text)))]
(rn/use-effect (fn [] (rn/use-effect (fn []
(when-not (string/blank? scanned-address) (when-not (string/blank? scanned-address)
@@ -1,7 +1,6 @@
(ns status-im.contexts.wallet.common.account-switcher.view (ns status-im.contexts.wallet.common.account-switcher.view
(:require (:require
[quo.core :as quo] [quo.core :as quo]
[react-native.core :as rn]
[status-im.contexts.wallet.sheets.account-options.view :as account-options] [status-im.contexts.wallet.sheets.account-options.view :as account-options]
[status-im.contexts.wallet.sheets.network-filter.view :as network-filter] [status-im.contexts.wallet.sheets.network-filter.view :as network-filter]
[status-im.contexts.wallet.sheets.select-account.view :as select-account] [status-im.contexts.wallet.sheets.select-account.view :as select-account]
@@ -31,33 +30,25 @@
type :no-title}}] type :no-title}}]
(let [{:keys [color emoji watch-only?]} (rf/sub [:wallet/current-viewing-account]) (let [{:keys [color emoji watch-only?]} (rf/sub [:wallet/current-viewing-account])
networks (rf/sub [:wallet/selected-network-details]) networks (rf/sub [:wallet/selected-network-details])
sending-collectible? (rf/sub [:wallet/sending-collectible?]) sending-collectible? (rf/sub [:wallet/sending-collectible?])]
show-new-chain-indicator? (rf/sub [:wallet/show-new-chain-indicator?])
on-press-networks (rn/use-callback
(fn []
(rf/dispatch [:wallet/hide-new-chain-indicator])
(rf/dispatch [:show-bottom-sheet
{:content network-filter/view}])))]
[quo/page-nav [quo/page-nav
{:type type {:type type
:icon-name icon-name :icon-name icon-name
:margin-top margin-top :margin-top margin-top
:background :blur :background :blur
:on-press on-press :on-press on-press
:accessibility-label accessibility-label :accessibility-label accessibility-label
:networks networks :networks networks
:align-center? true :align-center? true
:networks-on-press on-press-networks :networks-on-press #(rf/dispatch [:show-bottom-sheet {:content network-filter/view}])
:show-new-chain-indicator? show-new-chain-indicator? :right-side [(when (and (ff/enabled? ::ff/wallet.wallet-connect)
:right-side [(when (and (ff/enabled? ::ff/wallet.wallet-connect) (not watch-only?)
(not watch-only?) show-dapps-button?)
show-dapps-button?) {:icon-name :i/dapps
{:icon-name :i/dapps :on-press #(rf/dispatch [:navigate-to :screen/wallet.connected-dapps])})
:on-press #(rf/dispatch [:navigate-to (when-not sending-collectible?
:screen/wallet.connected-dapps])}) {:content-type :account-switcher
(when-not sending-collectible? :customization-color color
{:content-type :account-switcher :on-press #(on-switcher-press switcher-type params)
:customization-color color :emoji emoji
:on-press #(on-switcher-press switcher-type params) :type (when watch-only? :watch-only)})]}]))
:emoji emoji
:type (when watch-only? :watch-only)})]}]))
+14 -22
View File
@@ -4,7 +4,6 @@
[status-im.common.qr-codes.view :as qr-codes] [status-im.common.qr-codes.view :as qr-codes]
[status-im.constants :as constants] [status-im.constants :as constants]
[status-im.contexts.wallet.common.utils.networks :as network-utils] [status-im.contexts.wallet.common.utils.networks :as network-utils]
[utils.address]
[utils.money :as money] [utils.money :as money]
[utils.number :as number] [utils.number :as number]
[utils.string])) [utils.string]))
@@ -325,19 +324,20 @@
(defn make-network-item (defn make-network-item
"This function generates props for quo/category component item" "This function generates props for quo/category component item"
[{:keys [network-name color on-change networks label-props type blur?]}] [{:keys [network-name color on-change networks state label-props type blur?]}]
(cond-> {:title (string/capitalize (name network-name)) (cond-> {:title (string/capitalize (name network-name))
:image :icon-avatar :image :icon-avatar
:image-props {:icon (resources/get-network network-name) :image-props {:icon (resources/get-network network-name)
:size :size-20} :size :size-20}
;; Remove the following line for v2.35 :action :selector
:show-new-feature-tag? (= network-name constants/base-network-name) :action-props {:type (or type
:action :selector (if (= :default state)
:action-props {:type (or type :checkbox) :filled-checkbox
:blur? blur? :checkbox))
:customization-color color :blur? blur?
:checked? (contains? networks network-name) :customization-color color
:on-change on-change}} :checked? (contains? networks network-name)
:on-change on-change}}
label-props label-props
(assoc :label :text (assoc :label :text
@@ -480,11 +480,3 @@
(filter (fn [{:keys [tokens]}] (filter (fn [{:keys [tokens]}]
(some positive-balance-in-any-chain? tokens)) (some positive-balance-in-any-chain? tokens))
operable-account)))) operable-account))))
(defn on-paste-address-or-ens
"Check if the clipboard has any valid address and extract the address without any chain info.
If it does not contain an valid address or it is ENS, return the clipboard text as it is"
[clipboard-text]
(if (utils.address/supported-address? clipboard-text)
(utils.address/extract-address-without-chains-info clipboard-text)
clipboard-text))
@@ -3,7 +3,6 @@
[clojure.string :as string] [clojure.string :as string]
[native-module.core :as native-module] [native-module.core :as native-module]
[promesa.core :as promesa] [promesa.core :as promesa]
[react-native.async-storage :as async-storage]
[status-im.common.json-rpc.events :as json-rpc] [status-im.common.json-rpc.events :as json-rpc]
[status-im.contexts.profile.recover.effects :as profile.recover.effects] [status-im.contexts.profile.recover.effects :as profile.recover.effects]
[status-im.contexts.wallet.rpc :as wallet-rpc] [status-im.contexts.wallet.rpc :as wallet-rpc]
@@ -131,14 +130,3 @@
(-> (wallet-rpc/sign-message message address (security/safe-unmask-data password)) (-> (wallet-rpc/sign-message message address (security/safe-unmask-data password))
(promesa/then on-success) (promesa/then on-success)
(promesa/catch on-error)))) (promesa/catch on-error))))
(rf/reg-fx
:effects.wallet/retrieve-base-chain-indicator-shown
(fn []
(async-storage/get-item :base-chain-indicator-shown
#(rf/dispatch [:wallet/retrieve-new-chain-indicator (not %)]))))
(rf/reg-fx
:effects.wallet/set-base-chain-indicator-shown
(fn [flag]
(async-storage/set-item! :base-chain-indicator-shown flag)))
-11
View File
@@ -797,14 +797,3 @@
:wallet.swap/transaction-success :wallet.swap/transaction-success
:wallet/transaction-success) :wallet/transaction-success)
sent-transactions])]]}))) sent-transactions])]]})))
(rf/reg-event-fx
:wallet/retrieve-new-chain-indicator
(fn [{:keys [db]} [flag]]
{:db (assoc-in db [:wallet :ui :show-new-chain-indicator?] flag)}))
(rf/reg-event-fx
:wallet/hide-new-chain-indicator
(fn [{:keys [db]}]
{:db (assoc-in db [:wallet :ui :show-new-chain-indicator?] false)
:fx [[:effects.wallet/set-base-chain-indicator-shown true]]}))
+8 -15
View File
@@ -135,13 +135,7 @@
cards (conj account-cards-data (new-account-card-data)) cards (conj account-cards-data (new-account-card-data))
[init-loaded? set-init-loaded] (rn/use-state false) [init-loaded? set-init-loaded] (rn/use-state false)
{:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance]) {:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance])
theme (quo.theme/use-theme) theme (quo.theme/use-theme)]
show-new-chain-indicator? (rf/sub [:wallet/show-new-chain-indicator?])
on-press-network-selector (rn/use-callback
(fn []
(rf/dispatch [:wallet/hide-new-chain-indicator])
(rf/dispatch [:show-bottom-sheet
{:content network-filter/view}])))]
(rn/use-effect (fn [] (rn/use-effect (fn []
(when (and @account-list-ref (pos? (count cards))) (when (and @account-list-ref (pos? (count cards)))
(.scrollToOffset ^js @account-list-ref (.scrollToOffset ^js @account-list-ref
@@ -163,14 +157,13 @@
:on-refresh #(rf/dispatch [:wallet/get-accounts])}] :on-refresh #(rf/dispatch [:wallet/get-accounts])}]
:header [rn/view {:style (style/header-container theme)} :header [rn/view {:style (style/header-container theme)}
[quo/wallet-overview [quo/wallet-overview
{:state (if tokens-loading? :loading :default) {:state (if tokens-loading? :loading :default)
:time-frame :none :time-frame :none
:metrics :none :metrics :none
:balance formatted-balance :balance formatted-balance
:networks networks :networks networks
:dropdown-on-press on-press-network-selector :dropdown-on-press #(rf/dispatch [:show-bottom-sheet
:show-new-chain-indicator? (when (not-empty networks) {:content network-filter/view}])}]
show-new-chain-indicator?)}]
(when (ff/enabled? ::ff/wallet.graph) (when (ff/enabled? ::ff/wallet.graph)
[quo/wallet-graph {:time-frame :empty}]) [quo/wallet-graph {:time-frame :empty}])
[render-cards cards account-list-ref] [render-cards cards account-list-ref]
@@ -18,7 +18,6 @@
:network-name :mainnet :network-name :mainnet
:chain-id 1 :chain-id 1
:related-chain-id 5}] :related-chain-id 5}]
:wallet/show-new-chain-indicator? false
:wallet/current-viewing-account-address "0x1" :wallet/current-viewing-account-address "0x1"
:wallet/current-viewing-account {:path "m/44'/60'/0'/0/1" :wallet/current-viewing-account {:path "m/44'/60'/0'/0/1"
:emoji "💎" :emoji "💎"
@@ -61,7 +61,7 @@
(fn [clipboard] (fn [clipboard]
(when-not (empty? clipboard) (when-not (empty? clipboard)
(-> clipboard (-> clipboard
utils/on-paste-address-or-ens utils-address/extract-address-without-chains-info
on-change))))) on-change)))))
:ens-regex constants/regx-ens :ens-regex constants/regx-ens
:scanned-value (or (when recipient-plain-address? send-address) scanned-address) :scanned-value (or (when recipient-plain-address? send-address) scanned-address)
@@ -8,26 +8,41 @@
(defn view (defn view
[] []
(let [selected-networks (rf/sub [:wallet/selected-networks]) (let [selected-networks (rf/sub [:wallet/selected-networks])
selector-state (rf/sub [:wallet/network-filter-selector-state])
color (rf/sub [:profile/customization-color]) color (rf/sub [:profile/customization-color])
network-details (rf/sub [:wallet/network-details])] network-details (rf/sub [:wallet/network-details])
viewing-account? (rf/sub [:wallet/viewing-account?])
balance-per-chain (if viewing-account?
(rf/sub [:wallet/current-viewing-account-fiat-balance-per-chain])
(rf/sub [:wallet/aggregated-fiat-balance-per-chain]))
mainnet (first network-details)
layer-2-networks (rest network-details)]
[:<> [:<>
[quo/drawer-top {:title (i18n/label :t/select-networks)}] [quo/drawer-top {:title (i18n/label :t/select-networks)}]
[quo/information-box
{:type :informative
:icon :i/info
:blur? false
:style {:margin-horizontal 20
:margin-bottom 4}}
(i18n/label :t/base-chain-available-info)]
[quo/category [quo/category
{:list-type :settings {:list-type :settings
:data [(utils/make-network-item
{:state selector-state
:network-name (:network-name mainnet)
:color color
:networks selected-networks
:label-props (get balance-per-chain (:chain-id mainnet))
:on-change #(rf/dispatch
[:wallet/update-selected-networks
(:network-name
mainnet)])})]}]
[quo/category
{:list-type :settings
:label (i18n/label :t/layer-2)
:data (mapv (fn [network] :data (mapv (fn [network]
(utils/make-network-item (utils/make-network-item
{:network-name (:network-name network) {:state selector-state
:network-name (:network-name network)
:color color :color color
:networks selected-networks :networks selected-networks
:label-props (get balance-per-chain (:chain-id network))
:on-change #(rf/dispatch :on-change #(rf/dispatch
[:wallet/update-selected-networks [:wallet/update-selected-networks
(:network-name (:network-name
network)])})) network)])}))
network-details)}]])) layer-2-networks)}]]))
@@ -249,13 +249,15 @@
(rf/reg-event-fx :wallet/stop-get-swap-proposal (rf/reg-event-fx :wallet/stop-get-swap-proposal
(fn [{:keys [db]}] (fn [{:keys [db]}]
{:db (update-in db [:wallet :ui :swap] dissoc :last-request-uuid) (let [route-request-ongoing? (some? (get-in db [:wallet :ui :swap :last-request-uuid]))]
:json-rpc/call [{:method "wallet_stopSuggestedRoutesAsyncCalculation" (when route-request-ongoing?
:params [] {:db (update-in db [:wallet :ui :swap] dissoc :last-request-uuid)
:on-error (fn [error] :json-rpc/call [{:method "wallet_stopSuggestedRoutesAsyncCalculation"
(log/error "failed to stop fetching swap proposals" :params []
{:event :wallet/stop-get-swap-proposal :on-error (fn [error]
:error error}))}]})) (log/error "failed to stop fetching swap proposals"
{:event :wallet/stop-get-swap-proposal
:error error}))}]}))))
(rf/reg-event-fx (rf/reg-event-fx
:wallet/clean-swap-proposal :wallet/clean-swap-proposal
+1 -3
View File
@@ -78,6 +78,4 @@
;;app starting flow continues in get-profiles-overview ;;app starting flow continues in get-profiles-overview
:profile/get-profiles-overview #(rf/dispatch [:profile/get-profiles-overview-success %]) :profile/get-profiles-overview #(rf/dispatch [:profile/get-profiles-overview-success %])
:effects.font/get-font-file-for-initials-avatar :effects.font/get-font-file-for-initials-avatar
#(rf/dispatch [:font/init-font-file-for-initials-avatar %]) #(rf/dispatch [:font/init-font-file-for-initials-avatar %])}))
;; show new chain indicator to highlight base chain. This will be be removed in v2.35.
:effects.wallet/retrieve-base-chain-indicator-shown nil}))
-5
View File
@@ -47,11 +47,6 @@
:<- [:wallet/ui] :<- [:wallet/ui]
:-> :last-updates-per-address) :-> :last-updates-per-address)
(rf/reg-sub
:wallet/show-new-chain-indicator?
:<- [:wallet/ui]
:-> :show-new-chain-indicator?)
(rf/reg-sub (rf/reg-sub
:wallet/latest-update :wallet/latest-update
:<- [:wallet/last-updates-per-address] :<- [:wallet/last-updates-per-address]
+3 -3
View File
@@ -3,7 +3,7 @@
"_comment": "Instead use: scripts/update-status-go.sh <rev>", "_comment": "Instead use: scripts/update-status-go.sh <rev>",
"owner": "status-im", "owner": "status-im",
"repo": "status-go", "repo": "status-go",
"version": "v10.7.0+hotfix.2", "version": "v10.8.0",
"commit-sha1": "595dc68e9ff5e6e57364818098616a97b83eabd5", "commit-sha1": "ba8fd51958686aea45e34e684ac925a4e65927f8",
"src-sha256": "04dsmz70h3i738bj3i3ba8bckpw61vxb56m8sc4qw8agc9pdaxc0" "src-sha256": "0kqn5rkfsn7aqc2n2flqvkm6cc53ssk0mc1l84f4czg0paci0717"
} }
@@ -41,9 +41,9 @@ class TestWalletCollectibles(MultipleSharedDeviceTestCase):
@marks.testrail_id(741839) @marks.testrail_id(741839)
def test_wallet_collectibles_balance(self): def test_wallet_collectibles_balance(self):
self.wallet_view.collectibles_tab.click() self.wallet_view.collectibles_tab.click()
self.wallet_view.set_network_in_wallet(self.network_name + ', NEW') self.wallet_view.set_network_in_wallet(self.network_name)
collectibles = { collectibles = {
"BVL": {"quantity": 2, "BVL": {"quantity": 1,
"info": {"Account": "Account 1", "info": {"Account": "Account 1",
"Network": "Base", "Network": "Base",
"category": "Football Player", "category": "Football Player",
@@ -102,8 +102,8 @@ class TestWalletCollectibles(MultipleSharedDeviceTestCase):
self.wallet_view.collectibles_tab_on_select_token_view.click() self.wallet_view.collectibles_tab_on_select_token_view.click()
time.sleep(5) time.sleep(5)
self.wallet_view.get_collectible_element('BVL').click() self.wallet_view.get_collectible_element('BVL').click()
self.wallet_view.amount_input_increase_button.click() # self.wallet_view.amount_input_increase_button.click()
self.wallet_view.confirm_button.click() # self.wallet_view.confirm_button.click()
for text in [self.account_name, self.sender_short_address]: for text in [self.account_name, self.sender_short_address]:
if not self.wallet_view.from_data_container.get_child_element_by_text(text).is_element_displayed(): if not self.wallet_view.from_data_container.get_child_element_by_text(text).is_element_displayed():
self.errors.append(self.wallet_view, self.errors.append(self.wallet_view,
@@ -118,7 +118,7 @@ class TestWalletCollectibles(MultipleSharedDeviceTestCase):
data_to_check = { data_to_check = {
'Est. time': ' min', 'Est. time': ' min',
'Max fees': r"[$]\d+.\d+", 'Max fees': r"[$]\d+.\d+",
'Recipient gets': '2 ' 'Recipient gets': '1 '
} }
for key, expected_value in data_to_check.items(): for key, expected_value in data_to_check.items():
try: try:
@@ -52,7 +52,7 @@ class TestWalletOneDevice(MultipleSharedDeviceTestCase):
'Mainnet': self.mainnet_balance, 'Mainnet': self.mainnet_balance,
'Arbitrum': self.arb_balance, 'Arbitrum': self.arb_balance,
'Optimism': self.optimism_balance, 'Optimism': self.optimism_balance,
'Base, NEW': self.base_balance 'Base': self.base_balance
} }
for network in expected_balances: for network in expected_balances:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 KiB

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

+1 -1
View File
@@ -182,7 +182,7 @@ class WalletView(BaseView):
def set_network_in_wallet(self, network_name: str): def set_network_in_wallet(self, network_name: str):
self.network_drop_down.click() self.network_drop_down.click()
Button(self.driver, accessibility_id="%s, label-component" % network_name).click() Button(self.driver, accessibility_id="%s, label-component" % network_name.capitalize()).click()
self.network_drop_down.click() self.network_drop_down.click()
def get_account_element(self, account_name: str = 'Account 1'): def get_account_element(self, account_name: str = 'Account 1'):
-1
View File
@@ -200,7 +200,6 @@
"bad-fees-description": "Your priority fee is below our suggested parameters.", "bad-fees-description": "Your priority fee is below our suggested parameters.",
"balance": "Balance", "balance": "Balance",
"base": "Base", "base": "Base",
"base-chain-available-info": "Base chain is now on Status - view your assets, interact with dApps and swap tokens",
"be-safe-with-secure-cold-wallet": "Be safe with secure cold wallet", "be-safe-with-secure-cold-wallet": "Be safe with secure cold wallet",
"begin-set-up": "Begin setup", "begin-set-up": "Begin setup",
"below-base-fee": "max fee below base fee", "below-base-fee": "max fee below base fee",