mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-05-19 07:29:32 +00:00
103 lines
2.6 KiB
Markdown
103 lines
2.6 KiB
Markdown
# AMM UI
|
|
|
|
A QML UI application for the Automated Market Maker (AMM) program.
|
|
|
|
See the [Logos QML UI App Tutorial](https://github.com/logos-co/logos-tutorial/blob/master/tutorial-qml-ui-app.md) for more information.
|
|
|
|
## Setup
|
|
|
|
This project requires Nix with experimental features enabled. If you haven't already, enable them permanently:
|
|
|
|
```bash
|
|
mkdir -p ~/.config/nix && echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
|
|
```
|
|
|
|
Install the Logos package manager CLI globally (one-time):
|
|
|
|
```bash
|
|
nix profile install 'github:logos-co/logos-package-manager#cli'
|
|
```
|
|
|
|
This makes `lgpm` available as a global command.
|
|
|
|
## Running the UI standalone
|
|
|
|
Start the UI with:
|
|
|
|
```bash
|
|
nix run .
|
|
```
|
|
|
|
This builds and runs the application in development mode. The Logos bridge is unavailable in standalone mode, but the UI layout and mock data are fully functional.
|
|
|
|
## Running inside Logos Basecamp
|
|
|
|
### 1. Build the LGX package
|
|
|
|
```bash
|
|
# Development variant (requires nix store at runtime)
|
|
nix build '.#lgx' --out-link result-lgx
|
|
|
|
# Portable variant (self-contained, works without nix)
|
|
nix build '.#lgx-portable' --out-link result-lgx-portable
|
|
```
|
|
|
|
### 2. Install into Basecamp
|
|
|
|
```bash
|
|
# Launch Basecamp once to initialise its data directory, then quit
|
|
nix run 'github:logos-co/logos-basecamp'
|
|
|
|
# Set the data directory path
|
|
# macOS:
|
|
BASECAMP_DIR="$HOME/Library/Application Support/Logos/LogosBasecampDev"
|
|
# Linux:
|
|
# BASECAMP_DIR="$HOME/.local/share/Logos/LogosBasecampDev"
|
|
|
|
# Install the UI plugin
|
|
lgpm --ui-plugins-dir "$BASECAMP_DIR/plugins" \
|
|
install --file result-lgx/*.lgx
|
|
```
|
|
|
|
> **Note:** Use matching variants throughout — dev with dev, portable with portable. Mixing variants causes loading failures. The portable build uses the `LogosBasecamp` data directory instead of `LogosBasecampDev`.
|
|
|
|
### 3. Launch Basecamp
|
|
|
|
```bash
|
|
nix run 'github:logos-co/logos-basecamp'
|
|
```
|
|
|
|
This fetches, builds, and launches Basecamp in one step. The AMM UI appears as a new tab in the Basecamp sidebar.
|
|
|
|
### Installing via the Basecamp UI
|
|
|
|
Alternatively, use the built-in package manager:
|
|
|
|
1. Launch Basecamp
|
|
2. Open Package Manager
|
|
3. Select "Install from file"
|
|
4. Choose the `.lgx` file from `result-lgx/`
|
|
|
|
## Updating Dependencies
|
|
|
|
To update the pinned versions of dependencies in `flake.lock`:
|
|
|
|
```bash
|
|
nix flake update
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
**Stale QML cache after rebuild:**
|
|
```bash
|
|
QML_DISABLE_DISK_CACHE=1 nix run 'github:logos-co/logos-basecamp'
|
|
```
|
|
|
|
**Reset Basecamp data directory:**
|
|
```bash
|
|
# macOS
|
|
rm -rf ~/Library/Application\ Support/Logos/LogosBasecampDev
|
|
# Linux
|
|
rm -rf ~/.local/share/Logos/LogosBasecampDev
|
|
```
|