Files
amethyst/GARNET_README.md
Nick Pulido 6cee6540ea
Create Release Assets / build-desktop (arm64, macos, macos-14, packageReleaseDmg) (push) Has been cancelled
Create Release Assets / build-desktop (x64, linux, ubuntu-latest, packageReleaseDeb packageReleaseRpm) (push) Has been cancelled
Create Release Assets / build-desktop (x64, linux-portable, ubuntu-latest, createReleaseAppImage createReleaseDistributable) (push) Has been cancelled
Create Release Assets / build-desktop (x64, windows, windows-latest, packageReleaseMsi createReleaseDistributable) (push) Has been cancelled
Create Release Assets / build-cli (arm64, macos, macos-14, amyImage) (push) Has been cancelled
Create Release Assets / build-cli (x64, linux, ubuntu-latest, amyImage jpackageDeb jpackageRpm) (push) Has been cancelled
Create Release Assets / deploy-android (push) Has been cancelled
feat: Add MoneroScreen UI and Account reactive flows
- MoneroScreen.kt: complete ~800-line UI with send, receive,
  daemon settings, transaction list, backup seed dialog
- Account.kt: add 7 reactive StateFlows and updateMoneroState()
- strings.xml: add monero-related string resources
- AGENTS.md: update with actual progress state
- GARNET_README.md: rewrite merge progress section
- Uses MaterialSymbols from commons, no compose-material-icons-extended
- compileFdroidDebugKotlin: 0 errors
2026-05-22 18:22:11 -07:00

66 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Garnet Merge Attempt — Status & Notes
## What is Garnet?
Garnet ([github.com/retrnull/garnet](https://github.com/retrnull/garnet)) is an Amethyst fork that adds **Monero tipping/zapping** support alongside Lightning (zap) tips. Key features:
- Monero wallet key derived from the user's Nostr private key
- Three tip modes: private, anonymous, public
- `monero` tags on posts (similar to NIP-57 zap tags)
- Tip counter on notes and profiles, like zaps
- Send received tips to an external wallet
## Merge Progress (MayJune 2026)
The merge was executed directly against the latest Amethyst codebase (not Garnet) following the recommended path: start from the newest Amethyst and port files one at a time.
### Completed (all committed)
1. **Phase 14**: Model layer, JNI bridge, WalletService, quartz tip events
2. **Phase 5**: Wiring — `MoneroDataSource.setMoneroService()`, Account reactive flows
3. **MoneroScreen UI**: `MoneroScreen.kt` (~795 lines) with send, receive, daemon settings, backup seed, transaction list composables
4. **Account reactive state**: `moneroStatus`, `moneroBalance`, `moneroLockedBalance`, `moneroWalletHeight`, `moneroDaemonHeight`, `moneroConnectionStatus`, `moneroTransactions`, `moneroAddress` StateFlows
5. **String resources**: 40+ monero-related strings added to `strings.xml`
### Build status
| Check | Status |
|---|---|
| `compileFdroidDebugKotlin` | ✅ 0 errors |
| `assembleFdroidDebug` | ⏳ Pending (not yet run after MoneroScreen addition) |
### What's remaining
- Run `./gradlew assembleFdroidDebug` end-to-end after MoneroScreen addition
- Wire MoneroScreen into app navigation routes (Routes.kt + AppNavigation.kt)
- Add `compose-material-icons-extended` dependency if needed
- Add NIP-69 monero address support
- Full end-to-end testing of monero wallet functionality
### Files changed in this session (MoneroScreen)
| # | File | Description |
|---|---|---|
| 1 | `amethyst/src/main/.../loggedIn/MoneroScreen.kt` | **NEW** — Full Monero wallet UI screen with all composables |
| 2 | `amethyst/src/main/.../model/Account.kt` | **MODIFIED** — Added 7 reactive StateFlows + `updateMoneroState()` |
| 3 | `amethyst/src/main/res/values/strings.xml` | **MODIFIED** — Added monero string resources |
See `AGENTS.md` for the full project notes, build findings, and merge plan.
### Quick commands for a new session
```bash
# Verify baseline builds
cd ~/projects/amethyst && ./gradlew assembleFdroidDebug | tail -3
# Get the diff between Garnet and the fork point
cd ~/projects/garnet
git diff 99614f07..bfaf92e5 --stat # 103 files
git diff 99614f07..bfaf92e5 --name-status # file list with A/M/D status
# Extract native libs from garnet releases
curl -L -o /tmp/garnet.apk "https://github.com/retrnull/garnet/releases/download/v0.3.0/app-mainnet-fdroid-universal-release.apk"
unzip -o /tmp/garnet.apk -d /tmp/garnet/
# libmonerujo.so is in extracted-libs/lib/<abi>/
```