Files
amethyst/GARNET_README.md
T
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

2.9 KiB
Raw Permalink Blame History

Garnet Merge Attempt — Status & Notes

What is Garnet?

Garnet (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

# 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>/