status-desktop/app
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
..
qml fix(main): replace the frozen splash screen with an animator 2023-02-13 19:40:00 +01:00
res chore(CPP): Enhance type safety using phantom types 2022-07-19 16:56:06 +02:00
src chore(cpp): apply clang-format 2022-10-19 17:34:23 +02:00
CMakeLists.txt chore(cpp): add chat section and list chats 2022-08-11 21:40:39 +02:00
README.md feat(Wallet) cache fetched balance history to DB for efficiency 2023-02-15 18:52:37 +04:00

README.md

CPP App

Setup dependencies

Note: if not stated otherwise the commands should be run from the root of the source tree

1. conancenter

Execute conan remote list. It should return this line among the results:

conancenter: https://center.conan.io [Verify SSL: True]

If it doesn't, consider upgrading conan with pip install conan --upgrade and then executing. conan remote add -i 0 conancenter https://center.conan.io. See conan's documentation for more info.

2. conan libstdc++11

This applies to linux: the default conan profile does not work, since GCC uses the new C++ ABI since version 5.1 and conan, for compatibility purposes uses the old C++ ABI. Execute this to update the profile:

conan profile update settings.compiler.libcxx=libstdc++11 default

2. Install dependencies

Install latest Qt release 6.3.X

Platform specific conan profile

  • Macos:
    • Apple silicon: conan install . --profile=vendor/conan-configs/apple-arm64.ini -s build_type=Release --build=missing -if=build/conan -of=build
    • Intel: conan install . --profile=vendor/conan-configs/apple-x86_64.ini -s build_type=Release --build=missing -if=build/conan -of=build
  • Windows: TODO
  • Linux: conan install . --profile=./vendor/conan-configs/linux.ini -s build_type=Release --build=missing -if=build/conan -of=build

Buid, test & run

Update CMake to the Latest Release or use the Qt's "$QTBASE/Tools/CMake/..."

Build with cmake

# linux
cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.3.2/gcc_64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

# MacOS: cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.3.2/macos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

# Windows: cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.3.2/mingw_64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

cmake --build build

Run tests

ctest --test-dir ./build

Build with QtCreator

Go to QtCreator's preferences navigate to Environment -> System -> Environment -> Change add GOBIN to the PATH

MacOS instructions

If go is installed with brew use the following configuration otherwise adapt it to your environment. Also this will allow access to conan if installed by brew

Use this in the Environment section of the QtCreator's preferences:

GOBIN=${GOPATH}/bin
GOPATH=${HOME}/go
PATH=${PATH}:${GOBIN}:/opt/homebrew/bin:/opt/homebrew/sbin