Je peux avoir deux portefeuilles Dusk installés et faire qu’un transfert DUSK valide quitte le mauvais sans erreur de chaîne.
Le risque commence avant la signature. La découverte des portefeuilles Dusk est basée sur des événements, pas sur un modèle singleton. Une dApp envoie dusk:requestProvider, chaque portefeuille compatible peut répondre avec dusk:announceProvider, et chaque fournisseur transporte son propre uuid stable et son état de profil.
Si je ne garde que providers[0] et que j’appelle dusk_requestProfiles, j’ai transformé l’ordre d’annonce en sélection du portefeuille. La transaction peut néanmoins être parfaitement valide. Le mauvais fournisseur ouvre l’approbation, le mauvais profil fournit le compte, et dusk_sendTransaction signe à partir de ce portefeuille.
C’est pourquoi je ne considérerais jamais « un fournisseur Dusk existe » comme suffisant. Quand plus d’un fournisseur est disponible, je veux que l’utilisateur choisisse le portefeuille selon son identité annoncée, persiste cet uuid, puis lie le profil et le compte visibles à ce fournisseur sélectionné avant d’afficher toute approbation de transfert.
La conséquence n’est pas une transaction échouée. C’est pire car tout fonctionne.
Sur Dusk, la découverte des fournisseurs me dit quels portefeuilles sont présents. Elle ne me dit pas quel portefeuille l’utilisateur voulait utiliser pour dépenser.
#dusk $DUSK @Dusk
Le risque commence avant la signature. La découverte des portefeuilles Dusk est basée sur des événements, pas sur un modèle singleton. Une dApp envoie dusk:requestProvider, chaque portefeuille compatible peut répondre avec dusk:announceProvider, et chaque fournisseur transporte son propre uuid stable et son état de profil.
Si je ne garde que providers[0] et que j’appelle dusk_requestProfiles, j’ai transformé l’ordre d’annonce en sélection du portefeuille. La transaction peut néanmoins être parfaitement valide. Le mauvais fournisseur ouvre l’approbation, le mauvais profil fournit le compte, et dusk_sendTransaction signe à partir de ce portefeuille.
C’est pourquoi je ne considérerais jamais « un fournisseur Dusk existe » comme suffisant. Quand plus d’un fournisseur est disponible, je veux que l’utilisateur choisisse le portefeuille selon son identité annoncée, persiste cet uuid, puis lie le profil et le compte visibles à ce fournisseur sélectionné avant d’afficher toute approbation de transfert.
La conséquence n’est pas une transaction échouée. C’est pire car tout fonctionne.
Sur Dusk, la découverte des fournisseurs me dit quels portefeuilles sont présents. Elle ne me dit pas quel portefeuille l’utilisateur voulait utiliser pour dépenser.
#dusk $DUSK @Dusk
