Commit Graph

185 Commits

Author SHA1 Message Date
Jacek Sieka fc16b81caf
chore(nim): use compile-time string formatting (#13945)
Nim 2.2 comes with compile-time string formatting that doesn't raise
exceptions if the format string is invalid - instead a compile-time
error is given.

This PR introduces a backport of that feature which improves performance
and reduces the risk that formatting causes the app to crash and will
help migrating the codebase to newer nim versions that track exceptions
more carefully.

There should be no change in runtime behavior (except formatting being a
bit faster)
2024-03-13 18:38:54 +01:00
Lukáš Tinkl 29c61d8135 fix: Hide fleet selection from settings
- introduce `ENABLE_FLEET_SELECTION` desktop config entry to control the
Fleet selection UI availability
- UI can be enabled with envvar `STATUS_RUNTIME_ENABLE_FLEET_SELECTION=1`

Fixes #13848
2024-03-08 13:29:28 +01:00
Igor Sirotin 666c74dcc0
fix: prevent recursive logging (#12916) 2023-12-04 17:11:54 +00:00
Stefan ccd8c5b65f feat(wallet) Wallet Connect integration prototype
Implement a prototype of integrating [WalletConnect Web SDK]()

- integrate WalletConnect Web SDK using Node.js and packing it using
  [webpack](https://webpack.js.org/guides/getting-started/)
  - this way, we achieve the same versioning strategy for the SDK
- add WalletConnectSDK view
  - it is used to load the web SDK via a WebView (validated working on
  Mac and Windows)
- add new app dependency of WebView QT
  - also update vendor packages `Dotherside` and `nimqml` to add
    required WebView::initialize API used to initialize the WebView
    integration at the app start
- add WalletConnectPage to Storybook for quick prototyping
  - Also add dependency for WebView Qt lib
- index.js is the wrapper used to provide a simple stateful interface
  with the WC SDK
- Entry in ui/generate-rcc.go ensures the node_modules cache is excluded
  from the resource file

Notes:

- Added `com.apple.security.cs.allow-jit` entitlement when signing the
app package. This allows Execution of JIT-compiled Code Entitlement
required by the fast-path of the JavaScriptCore framework on MacOS
platforms.
- Keep some debugging entries expected to help debugging Linux package
- Removed outdated `DerivationPathInputRegressionTests` qml test

Closes #12301
2023-10-30 09:29:33 +01:00
Sale Djenic f88c23dc7b refactor(@desktop/general): env variables sorted and CL args introduced
- Necessary env variables to build the app:
STATUS_BUILD_INFURA_TOKEN
STATUS_BUILD_INFURA_TOKEN_SECRET
STATUS_BUILD_POKT_TOKEN
STATUS_BUILD_OPENSEA_API_KEY
STATUS_BUILD_ALCHEMY_ETHEREUM_MAINNET_TOKEN
STATUS_BUILD_ALCHEMY_ETHEREUM_GOERLI_TOKEN
STATUS_BUILD_ALCHEMY_ARBITRUM_MAINNET_TOKEN
STATUS_BUILD_ALCHEMY_ARBITRUM_GOERLI_TOKEN
STATUS_BUILD_ALCHEMY_OPTIMISM_MAINNET_TOKEN
STATUS_BUILD_ALCHEMY_OPTIMISM_GOERLI_TOKEN

- The list of available env variables as well as CL arguments can be seen running
the app providing `--help` argument. All env vars are prefixed with `STATUS_RUNTIME_`.
2023-10-24 13:16:58 +02:00
Alex Jbanca eb6a33f385 fix: Add SA_ONSTACK flag to the event 16 2023-08-18 09:07:23 +03:00
Igor Sirotin d8c9802d77
fix: Restore window after closing on MacOS (#11748) 2023-08-02 16:49:28 +03:00
Cuteivist 088dd76257
desktop(DOtherSide): Set env var before creating gui app (#10891) 2023-06-01 20:24:31 +02:00
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03:00
Lukáš Tinkl 3b2a8f4253 fix: Status taskbar button and the Status window title bar are missing
... the Status icon in OS Windows 10 (new regression in 0.10)

fix a fatal typo when refactoring to use `main_constants.IS_MACOS` :)

Fixes #9791
2023-03-22 23:37:38 +01:00
Alex Jbanca 4ccdcdf44e chore: Add Apple silicon support 2023-03-22 15:20:07 +02:00
Alex Jbanca 58e9e61702 fix(SplashScreen): Enable threaded renderer 2023-03-07 12:31:36 +02:00
Richard Ramos a7ecb4be92 fix: delete `appController` before `statusFoundation`
AppController executes status-go Logout function when it's being deleted, and that will stop all status-go services and kill pending mailserver requests. If StatusFoundation is deleted before the AppController, it's possible for some tasks to freeze the app on logout
2023-03-01 19:13:40 -05:00
Lukáš Tinkl 34686226d7 chore: point VERSION of source dev/builds to GH repo
For these source/dev builds:
- display "git master SHA" as the version number
- disable the "Check for updates" button
- use APP_VERSION in nim

Rationale: instead of updating git master VERSION text file manually each
time an official version is released, we will now mark source/dev builds
with the corresponding git commit hash and display that in the
Settings/About section
2023-02-01 16:55:30 +01:00
Sale Djenic c43b665db3 chore(@desktop/general): map `defined(macosx)` to custom constant
A custom `IS_MACOS` constant introduced which represents os defined
macosx, cause for devs working on macos is easier to change a single constant
in a single place to simulate some how the app would behave in some cases on
other platforms.

For example if the dev is working on macos, it's not possible to simulate linux only or
win only features that way, but it's definitely possible to check if mac only features are
not visible on other platforms.
2023-01-26 09:05:57 +01:00
Patryk Osmaczko ce08265e0d chore: re-enable logging in prod version
closes: #8932
2023-01-04 18:16:04 +01:00
Michal Iskierko 6d2a2e6e03 fix(@desktop/general): Fix clicking deep links in chat
Clicking any deep-link in chat: /u, /c, /cc does not open browser but executes instantly

Fix: #6302
2022-10-25 08:26:16 -04:00
Igor Sirotin b15befe65a fix(nim_status_client): Increased JS engine stack size 2022-08-11 13:47:55 -04:00
Sale Djenic db44bc25d3 feat(@desktop/keycard): initial keycard implementation
Keycard implementation affected onboarding/login flows.
- new user - first run - new keys into keycard
- new user - first run - import seed phrase into keycard
- old user - first run - login importing from keycard
- login the app using keycard

Fixes: #5972
2022-08-04 09:50:04 +02:00
Jonathan Rainville 0419f8077d feat(windows): hook protocol uris to the urlManager
Fixes #5973
2022-07-28 10:00:43 -04:00
Richard Ramos 1c30eff74b fix: logs on node tab 2022-07-12 16:59:59 -04:00
Lukáš Tinkl 79398ffe77 fix(@desktop): enable the hover effects by default
Close #6254

- since Qt 5.xy, hover is not enabled by default for QQC2, so enable it
unconditionally as we are a desktop app anyway
- this fixes several hover effects being broken, mostly for builtin
components like MenuItem and some buttons (eg. the leftmost NavBar)
where we haven't enabled those with `hoverEnabled: true` explicitely
2022-07-05 12:04:07 +02:00
Sale Djenic 698374b91c feat(desktop/general): app support for status-im:// URIs - mac
Fixes #3375
2022-06-01 08:42:57 +02:00
Michal Iskierko 38031aba83 feature(desktop/general): Configurable logs
Log level can be chosen during application startup.
Logs are disabled for production build.

Fix #3609
2022-03-28 13:58:08 -04:00
Michal Iskierko 3711ab613a feature(desktop/internal): Improve log file naming convention
Logs are named app_yyyyMMdd_HHmmss.log
Version, commit and start date information are displayed in logs at the begining.
Injecting commit version from Makefile.
Moving DESKTOP_VERSION const to constants.nim

Fix #3611
2022-03-24 17:47:48 -04:00
Alexandra Betouni c2977e468f feat(onboarding): Added SplashScreen
- Added SplashScreen as initial screen before
onboard as per new designs.
- Also moved all onboarding related code from
main to onboarding section and switched to
import this and all other sections as
qml modules, exposing this way only
necessary files.
- Cleaned up unecessary qmldir files and
imports.

Closes #4954
2022-03-08 14:02:24 -05:00
Richard Ramos ae09dfb04b feat: use http server for images and identicons 2022-02-21 17:30:50 -04:00
Patryk Osmaczko ba7a6d5d34 style: remove trailing whitespaces 2022-02-09 11:16:23 +01:00
Richard Ramos ad7f48d6ac refactor: removing mailserver controller and model 2022-02-01 15:16:45 -04:00
Sale Djenic 4169854feb fix: multiple issues running the app
- `setAppWidth` issue - fixed
- `signal connection` issue - fixed
- `app-run-test.sh` script added
2022-02-01 11:52:37 +01:00
Sale Djenic 80b94d6519 refactor(general): `nim_status_client.nim` file cleaned
Parts which are not refactored yet are moved to `AppController` and
marked there (a comment is added for a sake of clarification) that those
parts will be removed once we complete refactor phase.
2022-02-01 11:35:20 +01:00
Sale Djenic 1ccc98af98 refactor(general): old `AppService` is renamed to `StatusFoundation`
`AppService` is renamed to `StatusFoundation` cause it doesn't contain
any more anything related to services. And it is moved to other location
`/src/app/core`. It contains a foundation for the app.

This part will rarely change
2022-02-01 11:35:07 +01:00
Sale Djenic e72b2d1007 refactor(general): managing signals from `status-go` added
Signals which were part of the `status-lib` are now part of the desktop app.
New class `SignalsManager` is introduced which is a main point for receiving
signals from `status-go`.
2022-02-01 11:34:42 +01:00
Sale Djenic a99422a00a refactor(general): core things moved to `core` section of the app 2022-02-01 11:34:23 +01:00
Sale Djenic 786c0b4041 refactor(general): global things moved to `global` section of the app 2022-02-01 11:34:00 +01:00
Richard Ramos 1989ad7971 refactor!: provider transactions 2021-11-19 10:19:11 -04:00
Richard Ramos 70c1095b60 refactor: creating module for bookmarks and provider 2021-11-05 11:02:45 -04:00
Sale Djenic 37e9150021 Cleaning up the code, and removing leftovers 2021-11-05 11:02:45 -04:00
Sale Djenic 44ba3f43f7 Local account settings exposed to the UI 2021-11-05 11:02:45 -04:00
Sale Djenic c3a374c36a Local settings service moved to AppController.
Old ProfileController and related props moved to AppController in order
to have an usable app during refactoring of onboarding/login modules.
2021-11-05 11:02:45 -04:00
Sale Djenic 7568880f26 quick fix for `production is not defined` error 2021-11-05 11:02:45 -04:00
Sale Djenic 30f11c06d4 onboarding process updated, import account feature handled 2021-11-05 11:02:45 -04:00
Sale Djenic e9bb9b256e Onboarding creating new account process updated. 2021-11-05 11:02:45 -04:00
Sale Djenic 9f4eeffdea A base structure for new architecture added
Initial structure for MainModule containing ChatSectionModule and
CommunitySectionModule is added, as well as initial structure for
StartupModule containing OnboardingModule and LoginModule.

Order of execution is updated and adapted to the current app state.
Main module gets loaded once a user is successfully logged in.
2021-11-05 11:02:45 -04:00
Michele Balistreri 3d46e62345 draft authentication dialogs 2021-10-06 08:32:32 -04:00
Anthony Laibe 22e8c8a7ff fix(@desktop/profile): Split account and profile settings
Avoid to reveal which alias own which settings. The only settings
pre-login available is the storeToKeychain

Ideally we should also encrypt the profile settings
2021-10-01 10:29:05 -04:00
Anthony Laibe a44822d7f6 fix(@desktop/profile): Fix loading the correct settings
Since #e0c53b7012354023e367c33093598f7523063aa6 settings where loaded
according to the username while they should be loaded after the public
key

As the public key is only available once the login happened, it needs
to be set when the profile is being initialized
2021-10-01 10:29:05 -04:00
Alexandra Betouni 4ee21ada05 feat(desktop) Added image function in Style
Introduced Style.svg() Style.png() Style.emoji() and
Style.icon() in Style.qml. Those should be used to
set the source in Images instead of using relative
paths. Usage:
Image {
   source: Style.svg("check)
   ....

Also moved all Singletons inside a new "utils"
folder and made it a QML module, to use
import utils 1.0 instead of relative paths

Closes #3678
2021-09-28 15:28:00 -04:00
Sale Djenic e0c53b7012 refactor(@desktop/general): managing local settings added on the nim side
From now on we are able to access local settings (settings and global settings)
on the nim side, not only through the qml.

This change is required as part of the feature issue-2675.
2021-09-17 12:45:34 -04:00
Richard Ramos 03eed589a9 feat: display logs in node management section 2021-09-15 16:04:28 -04:00