48 lines
4.6 KiB
Markdown
48 lines
4.6 KiB
Markdown
<!-- file: ks-wallet/TODO.md -->
|
|
<!-- version: 15 -->
|
|
|
|
# TODO — ks-wallet
|
|
|
|
## `0.5.2`
|
|
|
|
- [x] caractériser par tests externes le format legacy `<alias>.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 `<alias>.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.
|