Commit Graph

21 Commits

Author SHA1 Message Date
SomberNight
24980feab7 config: introduce ConfigVars
A new config API is introduced, and ~all of the codebase is adapted to it.
The old API is kept but mainly only for dynamic usage where its extra flexibility is needed.

Using examples, the old config API looked this:
```
>>> config.get("request_expiry", 86400)
604800
>>> config.set_key("request_expiry", 86400)
>>>
```

The new config API instead:
```
>>> config.WALLET_PAYREQ_EXPIRY_SECONDS
604800
>>> config.WALLET_PAYREQ_EXPIRY_SECONDS = 86400
>>>
```

The old API operated on arbitrary string keys, the new one uses
a static ~enum-like list of variables.

With the new API:
- there is a single centralised list of config variables, as opposed to
  these being scattered all over
- no more duplication of default values (in the getters)
- there is now some (minimal for now) type-validation/conversion for
  the config values

closes https://github.com/spesmilo/electrum/pull/5640
closes https://github.com/spesmilo/electrum/pull/5649

Note: there is yet a third API added here, for certain niche/abstract use-cases,
where we need a reference to the config variable itself.
It should only be used when needed:
```
>>> var = config.cv.WALLET_PAYREQ_EXPIRY_SECONDS
>>> var
<ConfigVarWithConfig key='request_expiry'>
>>> var.get()
604800
>>> var.set(3600)
>>> var.get_default_value()
86400
>>> var.is_set()
True
>>> var.is_modifiable()
True
```
2023-05-25 17:39:48 +00:00
SomberNight
03ab33f4b2 SimpleConfig: change API of set_key(): "save" is now kwarg-only 2023-05-25 17:37:16 +00:00
ThomasV
f770905551 follow-up d56162c588 2023-03-14 17:28:33 +01:00
SomberNight
4b8790c919 qt 2fa: show different status-bar icon for "2fa disabled" wallet
related: https://github.com/spesmilo/electrum/issues/8018
2022-10-16 15:10:46 +00:00
SomberNight
98feff07ad threading.Thread: fix some DeprecationWarnings
"DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead"
2022-05-23 17:52:39 +02:00
SomberNight
1851ec962f trustedcoin: fix two-step wallet creation (offline->online)
got broken in c46fbf08a5
2020-12-09 18:31:08 +01:00
SomberNight
95b08e9961 plugins: remove 'on_new_window' hook 2020-12-08 10:33:43 +01:00
SomberNight
07f5d6b745 keystore: 'get_tx_derivations' no longer public 2020-02-12 18:14:00 +01:00
ThomasV
e1ce3aace7 Separate db from storage
- storage is content-agnostic
 - db and storage are passed to wallet contructor
2020-02-10 17:45:23 +01:00
ThomasV
16e293c289 follow-up cefa4762ba 2019-09-10 16:24:21 +02:00
SomberNight
f60f690ca9 change many str(e) to repr(e) as some exceptions were cryptic
it's often valuable to see the type of the exception
(especially as for some exceptions str(e) == '')
2019-07-17 20:12:52 +02:00
SomberNight
003e6c3e79 fix 2fa wallet creation via qt gui
closes #5334
2019-05-14 15:32:57 +02:00
SomberNight
3385a94753 logging: basics 2019-05-02 15:19:03 +02:00
SomberNight
1cfac928f9 trustedcoin: longer timeout for server signing
fixes #5221
2019-03-25 23:36:52 +01:00
SomberNight
a62bf2a53a trustedcoin: better UX in Qt when cannot connect to TC server
closes #5184
2019-03-16 20:05:10 +01:00
ThomasV
d5790ea109 wizard: do not use on storage object during wallet creation 2019-02-28 09:02:58 +01:00
SomberNight
026448837f no more "import *"
fixes #5101
fixes #5105
2019-02-11 20:21:24 +01:00
SomberNight
9013f6d59e wizard: make 'stack' private 2019-02-04 20:27:00 +01:00
SomberNight
16bac5fd73 rm qt icons file
so we don't need pyrcc5, which is not deterministic,
and so we don't need the submodule for the icons

based on electrumsv/electrumsv@bf8802c2ea
2019-02-01 20:15:28 +01:00
SomberNight
7b90d69443 trustedcoin: p2wpkh billing addresses 2018-12-11 09:28:35 +01:00
Janus
097ac144d9 file reorganization with top-level module 2018-07-13 14:01:37 +02:00