Ğecko: Nouveau client de paiements Ḡ1 sur mobile en cours de développement (Dart/Flutter)

Merci pour ton test, je n’aurais pas vue ce bug sinon.
Quand l’app est toute fraiche, le dossier wallet n’était pas créé, ce qui générait un crash de l’écran Mes portefeuille… C’est réparé normalement ici, tu peux me dire ?

Le bouton « Importer un portefeuille existant » ne fonctionne pas encore.
Le bouton changer de code secret dans les options de wallets une fois qu’il est créé ne fonctionne pas non plus, c’est normal.

A part tout est censé fonctionner.


Retenez bien vos codes secret vous en aurez besoin pour supprimer votre wallet désormais ^^

Sinon il faut erase les data de l’app dans les paramètres android.
Pour remédier à ce problème, je songe à proposer un bouton « Code secret oublié ? » qui permet de regénérer un dewif avec code secret à partir de la phrase de restauration.
Et sur cette page un autre bouton « Vous avez perdu votre phrase de restauration » qui balance un gros « Shame on You ! » …

Non je déconne, le dernier bouton proposerait de supprimer le portefeuille, en testant le solde, car il n’y a pas d’autre choix …

Sinon @elois, selon toi quels seraient les impacts en terme de sécurité si on décide que chaque wallet généré auraient le même code secret ? C’est à dire que le code secret serait un code master, paramétré au début et changeable, mais pour tout les wallets générés sur l’appareil ?


Vous pouvez créer autant de wallet que vous voulez, je fixerai une limite plus tard.


Astuce: Le temps de l’alpha/beta, j’ai caché une triche lors de la génération de wallet:

Lorsqu’il vous demande le mot de votre phrase de restauration, les bonnes réponses sont soit le mot demandé, soit « triche » lol.

C’est juste pour faciliter le debug …

Oui c’est bon…
par contre bouton “importer un portefeuille existant” ne fait rien, c’est normal ?

Oui c’est normal j’ai oublié de le préciser ^^

J’édite.

1 Like

Nouveau build:

  • Ajout de l’écran de changement du code secret
  • Quelques bug fix

Nouveau build:

Menu paramètres, possibilité de supprimer tous les wallets de l’appareil, le temps de l’alpha/beta.
Améliorations sur le thème.

Voilà je vais faire une pause quelques jours, puis je vais enfin attaquer les providers.

2 Likes

J’ai le plaisir d’annoncer la version 0.0.1+0:

Beaucoup de nouveautés:

  • Tous le « moteur » a bougé, comme je le disais j’ai changé de paradigme pour toutes les gestions d’états Flutter. Désormais, la vue est bien séparé de la logique (screens/models), et j’utilise des providers pour tous les gestions d’états (notamment les rebuilds d’éléments de vues).
    Il n’y a donc plus aucune class StatefulWidget.
  • La vue historique (Accueil) a bien été revue, désormais l’infinite scroll GQL fonctionne nickel (enfin dites moi si vous trouvez des bugs!).
  • Meilleurs affichage des transactions
  • Chaque transaction est clickable
  • Nouveau bouton de paiement avec son popup, mais pas encore le workflow de paiement (en attente de binding pour différentes choses côté Rust)
  • La vue ‹ Mes portefeuilles › est plus claire, la liste est à peut prêt propre, chaque portefeuille est clickable pour entrer dans ses options.
  • Chaque élements de cette vue a sont tooltip associé
  • Possibilité d’imprimer un protefeuille généré
  • Pour confirmer un portefeuille, lors de la demande du mot de la phrase de restauration, vous pouvez tapper soit le mot demandé, soit « 3.14 », soit « triche ». Pour tester l’app, vous pouvez nommer votre wallet par son code personnel, pour faciliter les tests :wink:
  • Changement de code personnel possible des les options de wallet.
  • Choix automatique d’un noeud aléatoire GVA parmis une liste prédéfinit au démarrage de l’app, jusqu’a tomber sur un noeud fonctionnel, jusqu’a 5 essai avant de continuer sans connection GVA.
  • Notification du noeud utilisé au démarrage
  • Optimisation de l’APK pour de meilleurs performances
  • Pas mal d’autres choses que je n’ai plus forcément en tête à ce moment précis ^^

Détails des changements

Todo court terme:

  • Corriger quelques petits bugs principalement d’affichages, que je connais mais qui n’interviennent que rarement en cas précis
  • Corriger définitivement quelques petits bugs de rafraîchissement de la vue Option d’un portefeuille lorsqu’une action est effectué.
  • Ajout des fonctions d’imports de portefeuille, soit par phrase de restauration, soit par ID/MDP Cesium (en attente d’un binding Rust pour cela)
  • Affichage du solde temps réel pour chacun de mes protefeuilles, dans la vue Mes portefeuille (pour le moment fake)
  • Action de choisir un portefeuille « Actif » (ou autre nom à trouver) parmi ses portefeuilles, qui sera utilisé automatiquement pour les paiements
  • Implémentation des fonctions de paiements et de son workflow (éventuellement en attente de binding Rust pour une partie de cela)
  • Affichage du userID duniter pour les comptes membres dans l’historique
  • Affichage des avatars Cesium+ pour le wallet sélectionné dans la vue historique (Accueil).
  • Rechercher un compte membre par son userID via le bouton de recherche
  • Changement de la vue par défaut de l’accueil (grâce au bouton de recherche)

Merci de vos tests et retour, comme beaucoup de choses ont changés et sont apparues, j’ai besoin que vous testiez bien cette version, ce serait super pour m’aider à debugger.

5 Likes

Problème :
Application non installée.

Faut-il désinstaller l’ancienne version avant ?

1 Like

Et oui merci de me le faire rappeler, je voulais vous le dire:

Si vous rencontrez ce problème, vous devez désinstaller l’application avant d’installer cette version.
Normalement ça ne devrait pas, mais des fois j’ai ce problème, a terme il n’y aura plus de soucis quand je ferais des AppBundle au lieu d’APK pour le playstore et fdroid.

Et si vous rencontrez encore le même problème ainsi, il faut que vous alliez dans les paramètres de vos applications Android, trouvez gecko, « Supprimez toutes les données pour tous les utilisateurs » (mais en théorie pas besoin).

En fait ici c’est dû au fait que j’ai changé des choses dans le répertoire wallets pour chaque wallets, donc il faut désinstaller l’app pour ainsi cela va supprimer tous vos wallets et données utilisateurs (il faut d’ailleurs que je creuse celà a terme …).

Et pour les brèles en Android comme moi!
Un petit mode d’emploi, pour tester?

Bon en fait je sais même pas quoi fait avec le fichier .apk : impossible d’ouvrir le fichier.
Sans doute dois-je faire une manip particulière.

Ou j’attends encore un peu que ce soit plus grand public… :roll_eyes:

C’est quoi ton téléphone ? Tu es sur quelle version d’android ?

Normalement le .apk doit isntaller l’app automatiquement ou l’ouvrant, quelle que soit la version d’android (après 2011).

Mon téléphone est un honor KIW-L21.
Android 6.0.1
Il me dit « aucune application trouvée pour ouvrir les fichiers »
Je sais pas trop quoi faire.

Essai ça, c’est peut être qu’il faut que tu autorises les installations « non sécurisés » dans les paramètres d’android.

En fait je faisant le téléchargement a partir de firefox, je l’ai refais avec google, et ça fonctionne.
En acceptant l’installation d’application d’origine inconnues.
Il ne me reste plus qu’a tester. !!
Merci.

1 Like

Ma première expérience utilisateur.

J’ai tester la création d’un portefeuille.
Je vois une clé publique une phrase de restauration et un code secret.
J’ai cliquer sur enregistrer, et la j’ai vue que j’aurai du noté la phrase de restauration :crazy_face:

Je recommence
Cette fois J’ai imprimer la phrase de restauration (ou plutôt créer le pdf sur mon téléphone), et j’ai cliquer sur enregistrer le portefeuille.
J’ai donc pu saisir le mot de phrase de restauration en regardant le pdf, et donné un nom à ce portefeuille ; « essai 1 ».
Puis j’ai voulu accéder au portefeuille, c’est à ce moment que j’ai vu que le code secret n"était pas imprimé.
Du coup impossible d’accéder à ce portefeuille, et impossible de le supprimer. :crazy_face:
Ce serait peut être bien de ne pas le créer avant que je tape le code secret ! :roll_eyes:

Je recommence
Et cette fois je fais une capture d’écran, pour avoir toute les infos sous la main.
J’ai enfin réussi à créer un portefeuille. :sunglasses:

Je suppose que si ce n’était pas un test j’aurais fait plus attention, mais je crois que beaucoup de personnes feront comme moi en découvrant l’appli sans être guidé. :innocent:

Je me dit que pour la phrase de passe un simple fichier txt suffirai.
Je crois qu’il faudrait attirer l’attention sur le fait de stocker la phrase de restauration et de bien retenir le code secret avant de continuer.
Il faudrait peut être aussi insister sur le fait que cette phrase doit être sauvegarder sur un autre support (au cas ou le téléphone tomberais en panne)

Après je me demandais comment utilisé ce compte sur mon pc (avec césium ou un autre client), mais ce n’est sans doute pas le but.

Voila mes réflexions du soir, en tant qu’utilisateur basique.

1 Like

Oui en effet, je vais ajouter une validation de code secret avant création.
Est-ce que tu as vue les bulles d’informations pour les éléments de la page de génération de portefeuille ? Ou est-ce que tu ne les as pas vues sans que je t’en parle ?

Je n’ai pas ajouté le code secret sur la feuille à imprimer, car le code secret peut être modifié une fois le wallet créé. Donc il peut devenir obselète sur un papier.
Mais bon peut être que ce serait mieux de l’imprimer avec, qu’en pensez vous ?

Mais plus globalement, j’aimerais arrêter de générer autant de code secrets que de portefeuille générés, pour plutôt générer un code secret global, définit à la première exécution de l’app, et qui sert à chiffrer tous les dewif, mais je ne suis pas sûr que ce soit possible, je ne vois pas comment faire sans sotcker ce code secret quelque part, ce qui est bien sûr impensable.

Je ne sais pas ce que tu en penses @elois ?


Si tu peux supprimer tous les portefeuilles dans les paramètres de l’app.

Oui tu as bien raison, merci pour ces précieux retours.

Lorsque que tu imprime un portefeuille, tu peux l’imprimer vers un fichier PDF plutôt qu’une imprimante. Tu peux aussi envoyer ce PDF via une app de partage proposé parmi celle que tu as d’installés (email, chats, ect…)

C’est typiquement un cas d’usage des HDwallets (et plus largement, de tous les algos de dérivation) :

Tu as un trousseau maître, sécurisé par un code, et des trousseau enfants dérivés de ce trousseau maître.

Du coup, un seul PIN, celui du trousseau maître.

NB: suivant la manière de dériver les trousseau enfants, quelqu’un d’extérieur peut dériver les clefs publiques enfants depuis la clef publique maître. Pour moi, une clef pub maître doit donc rester secrète sauf cas spécifiques.

Les comptes importés pourraient être stockés comme DEWIF avec un mot de passe nécessitant la clef privée maître. Par ex. La clef privée maître signe sa propre clef publique, et on utilise cette signature comme passphrase pour les DEWIF des trousseau importés.

J’aimerais bien bosser sur la dérivation de wallets, mais:

  • je vais d’abord finir ce que j’ai commencé
  • j’ai juste survolé le sujet, je n’en comprend pas tous les aspects, risques et possibilités.
  • je n’ai pas trouvé de lib ou binding python pour bosser dessus
  • je sais que certaines implémentations pour ED25519 sont vulnérables, mais ne sais pas trier le bon grain de l’ivraie.

… bref, s’il y a un.e expert.e, je pense que ce serait un bon sujet de visioconf :wink: . Notamment, définir un schéma de dérivation et un format d’import me semble nécessaire avant une première implémentation.

1 Like

OUI je les ais vu, mais je n’y a fais gaffe qu’au deuxième ou troisième essai.

Je me dis que ça serait bien de l’avoir sur l’imprimé, avec un avertissement pour dire qu’il peut être modifié.

Je trouve que ce serait bien un code secret global, peut en le re-générant à chaque création de portefeuille ?
Un truc qui demanderais le code du portefeuille précédent, pour le ré encoder avec le nouveau code. Peut-être que cela serai possible ainsi ! :shushing_face:

En effet, mais j’aurais voulu ne supprimer que celui ci. :roll_eyes:


J’ai fait le test du scanner, j’ai apprécié la possibilité d’allumer la torche quand il fait sombre. :sunglasses:
J’ai été surpris de ne voir qu’un seul chiffre après la virgule. Je ne suis pas au centime près mais ce derniers chiffre m’aide à identifier mes virements.
Je suppose que l’affichage en DU sera paramétrable, est-ce l’affichage sera au centième ou au millième?


Je me dis qu’en plus de mes portefeuilles cela pourrait être sympa d’avoir une liste de portefeuilles “amis” pour les comptes sur lesquels je fait régulièrement des virements.
Pour pouvoir ajouter un nom sur un portefeuille que je scanne, même s’il n’est pas à moi.
Pour pouvoir aussi les reconnaître dans la liste des transactions.


J’apprécie la rapidité d’usage ce client, et je serais ravi de tester les prochaine fonctionnalité. :star_struck:

Oui tu as raison, pour le coup, les HD wallets auraient entre autre cet avantage.
Je ne sais pas, j’avou que cet élément me fait revenir un peu sur ma décision de ne pas implémenter les HD wallets dès le début, en fait, ce serait peut être mieux.

J’ai besoin de creuser au max cette question et d’expérimenter moi même ces HD wallets avant de me décider.
En fait un binding Rust pour ça serait peut être très utile @elois :sweat_smile:

Oui quoi qu’il arrive c’est un sujet qu’il faut creuser et qui a de l’avenir.

Est-ce que tu aurais des idées pour mieux informer sur cette page, sans trop encombrer la page ?

Je pense que tu as raison, je vais l’imprimer sur la page avec la mention que tu as mis.

Hey mais c’est tordu, mais pas si bête comme idée !

Ouai c’est vrai que ce serait bien de pouvoir supprimer un wallet ciblé dont on a oublié le code secret, sans avoir à tout effacer …

Ahaha c’est un bug, j’avais pas fait gaffe, merci !

Oui, au centième.

C’est prévus prochainement :wink:
Avant ça, je veux travailler la vue recherche, celle-ci est encore innactive, et aura une place importante. C’est dans cette vue que tu pourra accéder à tes portefeuille de contact (en plus de l’historique des portefeuille scannés/visités).

Yes merci, je focus sur rapidité et ergonomie le plus épuré possible. Ces deux points se complexifies de jour en jour avec l’arrivé de nouvelles fonctionnalités, comme le débarquement des données Cesium+:

Peek 31-01-2021 16-39

DISCLAIMER: Les données Cesium+ demanderont une attention toute particulière concernant leur affichage. Ne vous emballez pas.

Ce serait se tirer une balle dans le pied que de se passer de la richesse de ces données. Comme je l’ai toujours dit, pour moi le soucis est avant tout une question d’UX.
J’attends que @tuxmain finisse de merger sa branche sur dev pour pouvoir afficher/rechercher les userID membres en blockchain via GVA. Les nom de protefeuille Cesium+ seront au second plan, et je vais donner une attention toute particulière à ne pas ramener les confusion que l’UI de Cesium peut apporter (C’est normal, c’était le début, Benoît à tout abbatus presque seul là dessus, il est temps maintenant de peaufiner cette UX. C’est ce que je compte faire dans gecko).

Que pensez-vous de tout ça ?

3 Likes

Ah oui j’avais oublié d’enlever le wip du nom du commit, merci. Par contre je n’ai pas le pouvoir de merger.

Edit: si en fait c’est bon, @elois tu peux merger quand tu veux.

2 Likes

Est ce que gecko permettra de faire des paiements avec un compte « normal » ou ce sera uniquement avec les wallets individuels ?