mirror of
https://github.com/logos-blockchain/logos-execution-zone-wallet-ui.git
synced 2026-05-06 04:39:28 +00:00
logos-execution-zone-wallet-ui
A QML + C++ backend UI module for the Logos platform that provides a graphical interface to manage execution zone wallet accounts and transfers.
Built with logos-module-builder using the mkLogosQmlModule pattern (QML frontend + C++ backend with Qt Remote Objects).
Features
- Create and list public/private accounts
- View account balances
- Sync to block height
- Public and private transfers (shielded, deshielded, private-owned)
- First-time onboarding (config path, storage path, password)
- Account key management
Supported Platforms
- Linux: x86_64, aarch64
- macOS: aarch64 (Apple Silicon)
How to Run
Standalone (recommended for development)
# Run directly
nix run
# With local workspace overrides
nix run --override-input liblogos_execution_zone_wallet_module path:../logos-execution-zone-module \
--override-input logos-module-builder path:../logos-module-builder
The standalone app starts Logos Core, loads capability_module and liblogos_execution_zone_wallet_module, then launches the QML UI via an isolated ui-host process.
In Basecamp
# Build LGX
nix build .#lgx
# Install into Basecamp's plugin directory
lgpm --ui-plugins-dir ~/Library/Application\ Support/Logos/LogosBasecampDev/plugins \
install --file result/*.lgx
Or from the workspace:
ws bundle logos-execution-zone-wallet-ui --auto-local
Build Targets
nix build # default — combined plugin + QML output
nix build .#lgx # .lgx package for distribution
nix build .#install # lgpm-installed output (modules/ + plugins/)
nix run # standalone app with wallet module
nix develop # enter development shell
Module Structure
logos-execution-zone-wallet-ui/
├── flake.nix # mkLogosQmlModule
├── metadata.json # Module config (ui_qml type)
├── CMakeLists.txt # logos_module() macro
└── src/
├── LEZWalletBackend.rep # RemoteObject interface
├── LEZWalletBackend.h/cpp # Business logic (extends LEZWalletBackendSimpleSource)
├── LEZWalletPlugin.h/cpp # Thin plugin entry point
├── LEZWalletPluginInterface.h # Plugin interface marker
├── LEZWalletAccountModel.h/cpp # QAbstractListModel for accounts
├── LEZAccountFilterModel.h/cpp # Proxy model for account filtering
└── qml/
└── ExecutionZoneWalletView.qml # QML frontend (+ sub-views)
Configuration
Config path and storage path are persisted via QSettings (Logos, ExecutionZoneWalletUI). On first run, if opening the wallet fails, the onboarding screen is shown to create a new wallet.
QML Hot Reload
During development, set DEV_QML_PATH to load QML from disk without recompiling:
export DEV_QML_PATH=/path/to/logos-execution-zone-wallet-ui/src/qml
Dependencies
| Dependency | Purpose |
|---|---|
| Qt6 Core, RemoteObjects, Declarative | UI framework + IPC |
logos-module-builder |
Build system (mkLogosQmlModule) |
logos-execution-zone-module |
Wallet backend module |
Related Repositories
| Repository | Role |
|---|---|
logos-execution-zone-module |
Wallet backend — this UI's required dependency |
logos-module-builder |
Module build system |
logos-liblogos |
Logos Core platform |
Description
Languages
QML
62.5%
C++
35.2%
CMake
1.4%
Nix
0.9%