3.1 KiB
3.1 KiB
Phase 1 Implementation Status
Last Updated: 2026-03-27T21:52:00-07:00
Build Status
- Compile: ✅ BUILD SUCCESSFUL
- Unit Tests: ✅ 163 tests pass, 0 failures
- Test Coverage: Core wallet, transaction, and payment flow logic
Completed Components
Core Wallet Infrastructure
- ✅
CardanoWalletManager- wallet state management with StateFlow - ✅
CardanoKeyStorage- encrypted mnemonic storage with biometric protection - ✅
SeedPhraseManager- BIP39 mnemonic generation/validation - ✅
BiometricAuthenticator- biometric authentication wrapper - ✅
CardanoNetworkConfig- testnet (preprod) configuration
Transaction Building
- ✅
DefaultTransactionBuilder- transaction construction using cardano-client-lib - ✅
KoiosCardanoClient- Koios API integration for UTXOs and protocol params - ✅
PaymentStatusPoller- transaction confirmation polling - ✅ Fee calculation from protocol parameters
Payment Flow
- ✅
/payslash command parsing - ✅ Payment entry UI with validation
- ✅ Payment confirmation UI with fee display
- ✅ Payment progress UI with status tracking
- ✅ Payment event sending (using marker prefix format)
Timeline Integration
- ✅
TimelineItemPaymentContent- payment card data model - ✅
TimelineItemContentPaymentFactory- payment event parsing - ✅ Custom event type handling via
MsgLikeKind.Other
Known Limitations
sendRaw() SDK Binding
The Matrix Rust SDK does not currently expose sendRaw() for sending custom event types through the Timeline interface. Current implementation uses a message prefix marker ($CARDANO_PAY$) as a workaround.
Impact: Payment events appear as messages with special prefix instead of custom Matrix event types.
Resolution: When the Rust SDK adds Timeline.sendRaw() support, update:
RustTimeline.kt- implement actual call toinner.sendRaw()DefaultPaymentEventSender.kt- switch from marker prefix to raw eventsTimelineItemContentFactory- handle native custom events
The receiving side (TimelineEventContentMapper) already handles CustomEventContent from MsgLikeKind.Other.
Test Summary
| Module | Tests | Status |
|---|---|---|
| CardanoNetworkConfigTest | 7 | ✅ Pass |
| CardanoWalletManagerTest | 9 | ✅ Pass |
| PaymentStatusPollerTest | 4 | ✅ Pass |
| PaymentConfirmationPresenterTest | 4 | ✅ Pass |
| PaymentEntryPresenterTest | 8 | ✅ Pass |
| PaymentProgressPresenterTest | 7 | ✅ Pass |
| TimelineItemPaymentContentTest | 13 | ✅ Pass |
| TimelineItemContentPaymentFactoryTest | 14 | ✅ Pass |
| + Other wallet tests | ~97 | ✅ Pass |
| Total | 163 | ✅ Pass |
Next Steps (Phase 2)
- Native custom events - When Rust SDK exposes
sendRaw(), implement proper custom event sending - Address book - Store/lookup Cardano addresses for Matrix users
- Payment receipts - Store payment history locally
- QR code scanning - For receiving addresses
- Mainnet support - Configuration toggle and safety checks
Commits
feb99a2518- fix(wallet): document sendRaw SDK limitation, fix all unit test failures — Phase 1 clean