2.8 KiB
2.8 KiB
SSSS Wallet Backup Build Result
Date: 2026-03-28 17:30
Commits
matrix-rust-sdk (gitea: kayos/matrix-rust-sdk-ada)
Branch: sulkta/send-raw-v1
Commit: 2dc91ef4ea1e50b2b91512571eaaf8f9c3a40c1c
element-x-android (gitea: Sulkta-Coop/element-x-ada)
Branch: phase1-dev
Commits:
0388cd7d06- feat(wallet): add SSSS backup for wallet seed phrase1308a8299a- feat(wallet): implement import wallet from mnemonic
What Was Built
Phase 1: Rust SDK FFI
- Created
bindings/matrix-sdk-ffi/src/secret_storage.rs— SecretStoreWrapper with put_secret/get_secret - Modified
bindings/matrix-sdk-ffi/src/client.rs— added open_secret_store() method - Modified
bindings/matrix-sdk-ffi/src/lib.rs— module export - Modified
bindings/matrix-sdk-ffi/src/error.rs— From impl
Phase 2: Kotlin SDK Wrappers
- Created
libraries/matrix/api/.../secretstorage/SecretStorage.kt— interfaces - Created
libraries/matrix/impl/.../secretstorage/RustSecretStorage.kt— implementations - Modified
MatrixClient.kt— added secretStorage property - Modified
RustMatrixClient.kt— implemented secretStorage - Fixed SDK compatibility issues (Sentry config removed from TracingService)
Phase 3: Wallet Backup Feature
- Created
features/wallet/api/.../backup/WalletBackupService.kt— interface - Created
features/wallet/impl/.../backup/WalletBackupServiceImpl.kt— implementation - Modified
WalletSetupState.kt— added BACKUP_TO_MATRIX step - Modified
WalletSetupPresenter.kt— added recovery key handling - Modified
WalletSetupView.kt— added Matrix backup UI with FLAG_SECURE
Phase 3b: Import Wallet from Mnemonic
- Added
IMPORT_MNEMONICstep to wallet setup flow - Live word count display (12/24 words)
- BIP39 mnemonic validation via cardano-client-lib
- FLAG_SECURE on import screen
- Paste-friendly single text area input
- Clear button and inline error messages
APK
Available at: http://192.168.0.5:8888/element-x-ada-fdroid.apk
Deviations from Plan
-
SDK Breaking Changes: The updated SDK removed Sentry configuration from TracingConfiguration. Fixed by making sentryConfig a no-op in RustTracingService and RustAnalyticsSdkManager.
-
Settings Button: Not implemented in this build. The backup-on-setup flow is complete; settings integration can be added separately.
-
Restore on Login: Not implemented. This would require changes to the login flow. Current implementation allows backup during wallet setup.
Secret Name
com.sulkta.cardano.wallet_seed
Build Environment
- Rust SDK built with Docker mingc/android-build-box:latest
- Targets: aarch64-linux-android, x86_64-linux-android
- AAR placed at: libraries/rustsdk/matrix-rust-sdk.aar
- Build target directory: /mnt/cache_nvme/rust-build (symlinked from /tmp/matrix-rust-sdk/target due to disk space)