Commit Graph

18 Commits

Author SHA1 Message Date
Anastasiya Semenkevich 544b2c1806 chore(@StatusITrayIcon.qml): object names 2023-11-02 15:10:04 +03:00
omahs bc3a8083ae Fix: typo 2023-04-11 13:42:21 -04:00
Stefan 3bb667bb7a feat(Wallet) cache fetched balance history to DB for efficiency
- Bump status-go head that include the required specific changes
  - fetch token balance (native or ERC20) and cache historical token quantity data
  - fetch FIAT currency
- Extend presentation layer (NIM and QML) to account for API changes
- Remove timed request and other optimizations from the time of fetching
  balance history every time instead of querying cache
- Add C++ integration debugging tests and update network chain configuration (outdated)

Closes: #8175
2023-02-15 18:52:37 +04:00
Lukáš Tinkl a93320f684 fix(main): replace the frozen splash screen with an animator
this runs on the GPU, therefore not prone to main thread being blocked

Fixes: #9524
2023-02-13 19:40:00 +01:00
Patryk Osmaczko c53264b124 chore(cpp): apply clang-format 2022-10-19 17:34:23 +02:00
Stefan a157f688fd chore(CPP): Align Saved Addresses with new changes
It adds favourite false and doesn't extend the implementation to support
these new features
Workaround to crash of chats whit a new account by lazy loading sections
and defaulting to wallet

Updates #7229
2022-10-12 09:38:19 +02:00
Stefan cfef7dc443 fix(CPP): fix linux compiling issues
Fix BigInt compilation on linux
Remove c++20 optimization for NamedType
Add assert for failing getChats that was providing an easy to miss warning
Enable linux CI build
Don't run tests. They fail to run in docker with
 "malloc_consolidate(): invalid chunk size", probably due to status-go
2022-08-23 19:38:23 +02:00
Sale Djenic 45f5a53069 chore(cpp): add chat section and list chats
Closes: #6747
2022-08-11 21:40:39 +02:00
Stefan 7cf0170a8a chore(CPP): integrate tokens balance in UI POC
Integrate token count in UI
Use delete later for QML exposed items to avoid errors

Closes #6321
2022-08-05 10:40:04 +02:00
Stefan 0ba35d3812 chore(CPP): integrate tokens balance status-go API (POC)
Exposes status-go API for retrieving networks and tokens
Tests for the exposed API
Introduced boost for the multiprecision library and 256 bits support
for balance.
Update build instructions

Updates: #6321
2022-08-02 16:06:33 +02:00
Stefan d5afd6beac chore(CPP): Create new wallet accounts - POC UI
The UI is for demo purposes. Also architecture decisions are open for change

Closes: #6321
2022-08-02 15:30:08 +02:00
Stefan 16b866ccbd chore(CPP): Enhance type safety using phantom types
Important changes:

- Converted the easy to mix strings to named types as phantom types
- Renamed `AccountDto`s to `MultiAccount` to better match the status-go
domain knowledge.
- Renamed MultiAccount to ChatOrWalletAccount to better match its multi
purpose and don't confuse with the MultiAccount domain knowledge.
- Remove libs/CMakeLists.txt

Note: Tried to use the fluent::NamedType but it doesn't work with
nlohmann_json, gave up finding why. Therefore I extracted only
the needed functionality for the simple types we use.

Updates: #6321
2022-07-19 16:56:06 +02:00
Stefan a710558c6b chore(CPP): foundation for user onboarding
Contains minimal account creation and login

Considerations:

- migrated status-go wrapper and login code from the fix/cpp-structure (241eec)
- Minimal refactoring and changes at the moment. Expect further refactoring
follow up to reach the desired state.
- Fix missing keychain initialization
- Fix accounts DB initialization call done by startup -> Controller.openedAccounts -> status-go.OpenAccounts calls
- Small refactoring and todos for other steps
- fix SignalsManager
- fix async access to dereferenced status-go memory from SignalsManager
- fix SignalsManager not starting when registering
- finish dev end to end test for create account and login
- small improvements and added TODOs for future work
- add onboarding test helpers and start messaging test
- Refactoring towards Login UI integration

Closes: #5909
Closes: #6028
2022-07-07 23:23:09 +02:00
Stefan c296fa21bc chore(CPP) install conan dependencies in CI 2022-07-01 16:57:51 +02:00
Stefan cecfd7f8e8 chore(CPP): base for the window and layouting system
Demo controls migrations to Qt6
POC for an application layout with isolated components

Closes: #5902
2022-07-01 16:57:51 +02:00
Stefan 37ab1a5513 chore(CPP/CI): basic CI setup for linux cmake build
Linux dockerized build and AppDir generation for compilation errors

Also added AppImage TODOs, basic setup for MacOS and Windows but they
still need work to have at least validation running

Temporary disable CPP windows/mac until limitations are
addressed in a follow up commit

Extra: add build configuration fixes for rest of the platforms

closes: #5998
2022-07-01 14:41:28 +02:00
Patryk Osmaczko 1cfc9dfd1e chore(cpp): remove STRINGIFY macro 2022-07-01 10:45:09 +02:00
Stefan 1e8c851283 chore(CPP): Basic project configuration setup using Qt6
Considerations

- Use versioned files. Versioned Qt CMake APIs are disabled to force explicit calls and say that we don't support older `QT`s
- Don't use blobbing. Use `target_sources` and `qt_target_qml_sources`
- Distribute `CMake` definitions closer to the context: main folders with their own `CMakeLists.txt`
- Everything in libraries under `Status` namespace for cleaner code.
- Includes are exposed with Module folder externally and without prefix internally
- File/Folders name matches definitions they contain for uniformity that leads to cleaner code
- All source files (cpp, qml, js ...) have to be added to one of the CMakeLists.txt files to be tracked by CMake build system.
- Use BUILD_DEBUG, BUILD_RELEASE and BUILD_DEVELOPMENT variables from Helpers library
- Avoid Include directories. Not needed anymore CMake `target_*` APIs handles this through `INTERFACE`, `PUBLIC` and `PRIVATE` scope identifiers
- `StatusQ` is meant to be compiled as an external library, therefore StatusQ tests are kept inside its own directory
- Forced CMake version to `3.21` for the latest features and fixes. It is desired to be kept as recent as possible due to its backward compatibility. Following Qt's shipped version might be an option
- Depends on status-go changes to allow forcing of arm for apple silicon

Found limitations to CMake Qt API with Qt 6.3

- Having `0` as major version when using `qt_add_qml_module` doesn't work. Qml engine reports loading the `qmldir` but won't load the plugin library and no error is reported outside that exposed types are not found.
- `qt_target_qml_sources` doesn't work now, it generate a double copy error when deploying qml files in bin-directory. For now we stick with adding files using `qt_add_qml_module` central place
  - Need to add `OUTPUT_DIRECTORY` to `qt_add_qml_module` to use the workaround
- If `MACOSX_BUNDLE` target property is set breaks importing of QML files. Disabled until fixed or workaround found
- For an unknown reason application executable tries to include the `QML_ELEMENT` include files, therefore for now I include all the C++ qml elements in INTERFACE
2022-06-30 12:16:33 +02:00