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
- 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
66 lines
2.9 KiB
Markdown
66 lines
2.9 KiB
Markdown
# 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 (May–June 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 1–4**: 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>/
|
||
```
|