50 lines
2.2 KiB
Clojure
50 lines
2.2 KiB
Clojure
(ns status-im.utils.config
|
|
(:require [status-im.react-native.js-dependencies :as rn-dependencies]
|
|
[status-im.utils.platform :as platform]
|
|
[clojure.string :as string]))
|
|
|
|
(def config
|
|
(memoize
|
|
(fn []
|
|
(js->clj (.-default rn-dependencies/config) :keywordize-keys true))))
|
|
|
|
(defn get-config
|
|
([k] (get (config) k))
|
|
([k not-found] (get (config) k not-found)))
|
|
|
|
;; TODO(oskarth): Extend this to deal with true/false for Jenkins parameter builds
|
|
(defn enabled? [v] (= "1" v))
|
|
|
|
;; NOTE(oskarth): Feature flag deprecation lifecycles. We want to make sure
|
|
;; flags stay up to date and are removed once behavior introduced is stable.
|
|
|
|
(def bootnodes-settings-enabled? (enabled? (get-config :BOOTNODES_SETTINGS_ENABLED "1")))
|
|
(def rpc-networks-only? (enabled? (get-config :RPC_NETWORKS_ONLY "1")))
|
|
(def mailserver-confirmations-enabled? (enabled? (get-config :MAILSERVER_CONFIRMATIONS_ENABLED)))
|
|
(def pairing-popup-disabled? (enabled? (get-config :PAIRING_POPUP_DISABLED "0")))
|
|
(def cached-webviews-enabled? (enabled? (get-config :CACHED_WEBVIEWS_ENABLED 0)))
|
|
(def snoopy-enabled? (enabled? (get-config :SNOOPY 0)))
|
|
(def hardwallet-enabled? (enabled? (get-config :HARDWALLET_ENABLED 0)))
|
|
(def dev-build? (enabled? (get-config :DEV_BUILD 0)))
|
|
(def erc20-contract-warnings-enabled? (enabled? (get-config :ERC20_CONTRACT_WARNINGS)))
|
|
(def tr-to-talk-enabled? (enabled? (get-config :TRIBUTE_TO_TALK 0)))
|
|
(def max-message-delivery-attempts (js/parseInt (get-config :MAX_MESSAGE_DELIVERY_ATTEMPTS "6")))
|
|
(def contract-nodes-enabled? (enabled? (get-config :CONTRACT_NODES "0")))
|
|
(def mobile-ui-for-desktop? (enabled? (get-config :MOBILE_UI_FOR_DESKTOP "0")))
|
|
;; NOTE: only disabled in releases
|
|
(def local-notifications? (enabled? (get-config :LOCAL_NOTIFICATIONS "1")))
|
|
|
|
;; CONFIG VALUES
|
|
(def log-level
|
|
(-> (get-config :LOG_LEVEL "error")
|
|
string/lower-case
|
|
keyword))
|
|
(def log-level-status-go
|
|
(-> (get-config :LOG_LEVEL_STATUS_GO "")
|
|
string/upper-case))
|
|
(def fleet (get-config :FLEET "eth.staging"))
|
|
(def default-network (get-config :DEFAULT_NETWORK))
|
|
(def pow-target (js/parseFloat (get-config :POW_TARGET "0.002")))
|
|
(def pow-time (js/parseInt (get-config :POW_TIME "1")))
|
|
(def max-installations 2)
|