4 KiB
4 KiB
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-emulatorcontainer on Lucy) - ADB: Connected at
emulator-5554 - Network: Cardano Preprod Testnet
- Test Account:
@testbot-elementx:sulkta.comatmas.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
/payslash 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
- API returns
- 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=falsefor the test room (Cobbert)- Wallet icon not showing in DM room top bar
- Workaround: Use
/payslash command instead
Bugs Fixed This Session
1. Koios Base URL Missing Trailing Slash
File: CardanoNetworkConfig.kt
// 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:
result.response?.contains("Empty") == true -> {
Result.success(0L) // 0 balance for unfunded address
}
Known Issues
- Wallet icon not appearing in DM rooms -
isDMflag not being set correctly for some rooms - Testnet faucet requires manual funding - No programmatic access without API key
- Transaction flow untested - Blocked by lack of funds
Recommendations
- For complete testing: Manually fund the wallet using the web faucet with captcha
- For isDM fix: Investigate why the "Cobbert" room has
isDM=false - For automated testing: Consider using a pre-funded testnet wallet or obtaining a faucet API key
Commits
9e9192dd3b- Remove biometric requirement for mnemonic storage9613a1e6fc- 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
/paycommand - ✅ 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