lez-programs/amm-ui/README.md
r4bbit 83665bf4de
chore(amm): add Logos Basecamp support
Provides the necessary instructions to run the AMM app inside Logos
Basecamp.

Closes #29
2026-04-29 13:44:30 +02:00

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
```