# TODO — ks-wallet ## `0.5.2` - [x] caractériser par tests externes le format legacy `.json`, ses erreurs et ses permissions. - [x] définir l'identité publique minimale d'un wallet et le lookup par alias. - [x] introduire le manager, le scan borné et le lookup des `.kswallet` structurellement valides dans le store résolu. - [x] conserver les wallets temporaires ou jetables purement en mémoire et leur frontière de signature actuelle. - [x] permettre l'inspection explicite d'un `.kswallet` hors store sans mutation de la configuration ni exposition publique du chemin. - [x] spécifier le format natif binaire v1 `.kswallet` et implémenter son décodage/validation stricts pour le scan. - [x] `0.5.2-pre.004` — implémenter l'encodage de création et la publication atomique/no-clobber du conteneur natif. - [x] sélectionner et documenter Argon2id v19 / XChaCha20-Poly1305 et leurs paramètres/bornes v1. - [x] créer/ouvrir un wallet persistant avec mot de passe sans exposer les bytes privés. - [x] permettre le changement de mot de passe en rechiffrant exactement la même keypair et donc en conservant la même pubkey. - [x] préserver la frontière `solana_signer::Signer` compatible avec les consommateurs sans dépendance de `ks-lib` vers `ks-wallet`. - [x] fournir cette même capacité depuis un wallet natif ouvert par mot de passe. - [x] importer le legacy Solana JSON vers `.kswallet` avec écriture atomique, rollback et vérification de pubkey. - [x] importer et exporter le format keypair JSON standard des binaires Solana. - [x] produire une matrice documentée des formats Phantom, Solflare, Backpack, Trust Wallet, Coinbase/Base et autres wallets Solana pertinents. - [x] implémenter dans `0.5.2` un seul adaptateur wallet tiers d'exemple : Base58 du keypair Solana complet, avec Phantom comme cible de référence documentée. - [x] reporter les autres adaptateurs tiers faisables vers une version ultérieure non déterminée après validation de la matrice. - [x] ne jamais synthétiser une recovery phrase supposée préserver une keypair arbitraire sans mnemonic/seed d'origine. - [x] exiger le mot de passe valide pour tout export contenant le secret. - [x] définir les collisions d'alias et de pubkey sans écrasement silencieux. - [x] normaliser la sélection par alias dans `ks-config` sans secret. - [x] adapter les consommateurs et le desktop uniquement via des surfaces non sensibles. - [ ] retirer secrets et chemins locaux inutiles des logs, erreurs, diagnostics et DTO. - [x] compléter les tests `pre.005` de migration non destructive, round-trip Solana CLI JSON/Base58, permissions privées, refus d'écrasement, collision de pubkey et export refusé avec mauvais mot de passe ; les tests de concurrence restent à réconcilier dans la finalisation selon les surfaces réellement utilisées. - [ ] produire le guide de sécurité et la documentation finale avant clôture de `0.5.2`. ## Version ultérieure non déterminée — migration des keypairs de fixtures - [ ] inventorier et classifier non destructivement les fichiers keypair JSON sous `wallets/temporary/**` avant toute conversion de masse : distinguer wallets/signers, autorités, mints, recipients et autres keypairs de fixtures ; - [ ] proposer une migration sélective des seuls signers devant devenir persistants vers `.kswallet`, en préservant les fichiers JSON sources et les pubkeys ; - [x] permettre l'inspection explicite d'un fichier keypair legacy compatible et l'extraction de sa pubkey publique sans conversion préalable en `.kswallet`. - [ ] ajouter un scanner borné de répertoire pour inventorier plusieurs candidats legacy avant migration, sans conversion automatique ni classification métier inventée à partir du secret seul. ## Version ultérieure non déterminée — adaptateurs de transfert - [ ] caractériser le wire Solana exact accepté par l'import `Private key` de Backpack avant d'ajouter un codec de marque ou un alias de format. - [ ] caractériser le wire d'import Solana de Trust Wallet depuis une documentation suffisamment précise avant implémentation. - [ ] caractériser le format keystore Solflare et son mot de passe uniquement si son conteneur public est suffisamment stable et spécifié pour un round-trip testé. - [ ] réévaluer Base app / ex-Coinbase Wallet si une documentation officielle expose un import direct de keypair Solana arbitraire ; ne jamais synthétiser une recovery phrase. - [ ] ajouter d'autres adaptateurs wallets uniquement à partir d'un format secret officiellement documenté, strictement validable et testable.