Parent Issue
#824
Summary
Build a migration tool/script that reads existing plaintext subscriptions from the SubscriptionRegistry, encrypts them, and re-stores them.
Details
- One-time migration script run by each user (since encryption requires their key)
- Flow: read all user's plaintext subs → derive encryption key → encrypt each → call
store_encrypted_subscription → optionally clear plaintext fields
- Must handle partial migration (resume after failure)
- Could be triggered from Settings → Privacy → "Encrypt my on-chain data"
Affected Code
- New:
client/app/settings/privacy/migrate-encryption/ — UI component
backend/src/services/blockchain-service.ts — migration logic
client/lib/stellar-wallet.ts — key derivation for migration
Acceptance Criteria
Parent Issue
#824
Summary
Build a migration tool/script that reads existing plaintext subscriptions from the SubscriptionRegistry, encrypts them, and re-stores them.
Details
store_encrypted_subscription→ optionally clear plaintext fieldsAffected Code
client/app/settings/privacy/migrate-encryption/— UI componentbackend/src/services/blockchain-service.ts— migration logicclient/lib/stellar-wallet.ts— key derivation for migrationAcceptance Criteria