# Element X ADA End-to-End Test Report **Date:** 2026-03-28 **Commit:** `9613a1e6fc` (on `phase1-dev` branch) **Tester:** Kayos (subagent) ## Test Environment - **Emulator:** Android emulator (`android-emulator` container on Lucy) - **ADB:** Connected at `emulator-5554` - **Network:** Cardano Preprod Testnet - **Test Account:** `@testbot-elementx:sulkta.com` at `mas.sulkta.com` - **APK:** `app-gplay-x86_64-debug.apk` ## Test Results ### ✅ Sign In - OIDC login to Matrix Authentication Service works - App launches and connects to homeserver - Chat list displays correctly ### ✅ Wallet Creation (Previously Tested) - Wallet was already created in a prior session - **Wallet Address:** `addr_test1qz57gfnua79ajquraf9v86h4kc8zugeszpmnujd7ktqqkk7nupfaelycr785nh2jnh87jv6ehcfnnve78tfrmxxrm5gseddjqc` - Mnemonic stored without biometric auth requirement (fix from commit `9e9192dd3b`) ### ✅ Payment Flow Entry - `/pay` slash command recognized and displayed in suggestions - Pressing send triggers the payment flow - Payment flow UI opens correctly with: - Testnet transaction warning - Available balance display (shows "0 ADA") - Amount input field - Recipient input field - Continue button ### ✅ Koios API Integration - **Fixed:** Trailing slash added to Koios base URLs (required by Retrofit) - **Fixed:** Empty response handling for unfunded addresses - API returns `[]` for addresses with no history - Previously failed with "Response Body is Empty" - Now correctly returns 0 balance / empty UTXO list - Balance queries work correctly - Log shows: "Address has no history, returning 0 balance" ### ⚠️ Funding (Blocked) - Cardano preprod faucet requires captcha or API key - Unable to fund the test wallet programmatically - **Manual action needed:** Fund wallet via https://docs.cardano.org/cardano-testnets/tools/faucet/ ### ❓ Send ADA (Not Tested) - Cannot test without funds in wallet - Transaction building and signing flow untested - Payment card in Matrix timeline untested ### ❓ Wallet Icon in Top Bar (Known Issue) - `isDM=false` for the test room (Cobbert) - Wallet icon not showing in DM room top bar - Workaround: Use `/pay` slash command instead ## Bugs Fixed This Session ### 1. Koios Base URL Missing Trailing Slash **File:** `CardanoNetworkConfig.kt` ```kotlin // Before: const val KOIOS_BASE_URL = "https://preprod.koios.rest/api/v1" // After: const val KOIOS_BASE_URL = "https://preprod.koios.rest/api/v1/" ``` This caused `IllegalArgumentException: baseUrl must end in /` ### 2. Empty Response Handling in KoiosCardanoClient **File:** `KoiosCardanoClient.kt` For unfunded addresses, Koios returns `[]` which the Java client interprets as empty/error. Added handling to return 0 balance instead of failing: ```kotlin result.response?.contains("Empty") == true -> { Result.success(0L) // 0 balance for unfunded address } ``` ## Known Issues 1. **Wallet icon not appearing in DM rooms** - `isDM` flag not being set correctly for some rooms 2. **Testnet faucet requires manual funding** - No programmatic access without API key 3. **Transaction flow untested** - Blocked by lack of funds ## Recommendations 1. **For complete testing:** Manually fund the wallet using the web faucet with captcha 2. **For isDM fix:** Investigate why the "Cobbert" room has `isDM=false` 3. **For automated testing:** Consider using a pre-funded testnet wallet or obtaining a faucet API key ## Commits - `9e9192dd3b` - Remove biometric requirement for mnemonic storage - `9613a1e6fc` - Fix Koios API integration for unfunded addresses ## What Works - ✅ App launch and login - ✅ Matrix sync and room list - ✅ Wallet creation (mnemonic generation, address derivation) - ✅ Payment flow entry via `/pay` command - ✅ Balance display (showing 0 ADA) - ✅ Koios API calls to preprod testnet - ✅ Error handling for unfunded addresses ## What Needs Testing - ❓ Transaction building with actual UTXOs - ❓ Transaction signing - ❓ Transaction submission to Cardano network - ❓ Payment card rendering in Matrix timeline - ❓ Balance updates after transaction