Ğecko talks / user support

Ta clé publique v1 correspond à l’adresse ss58 5GosZYTL75W3J4K8JvtRjeNBrYAz3tgEqxV1Si5XPurJScvz.

Le soucis semble venir de Ğecko étant donnée que les données semblent correctes en blockchain

Cependant chez moi ton solde s’affiche correctement donc je dois investiguer:

J’ai oublié de le dire dans la réunion de ce soir : je vais voir pour refaire un build Gecko pour iPhone car la version beta a expiré, et pour bénéficier de tes correctifs et évolutions.

2 Likes

Je fais un petit point concernant les nouveautés des 3 derniers builds.
Je ne fait pas de point à chaque fois car je n’en ressent pas le besoin tant que nous somme sur une monnaie de test.

  • Pas mal de corrections de bugs et de refacto en tous genre on été effectués sur l’ensemble du code.
  • Le scan des dérivation lors de l’import scan désormais les 60 premières dérivations (auparavant 20) et est beaucoup plus rapide qu’avant, étant donné que j’ai scindé la génération des 60 dérivations, le requêtage du solde de ces 60 wallets en multiQuery en une seule grosse requête, et l’import des dérivations existantes
  • L’activité de chaque compte affiche l’événement de migration d’identité au milieu de l’historique avec la l’ancienne addresse.
  • Optimisation du chargement des usernames
  • Apparition d’un mini tuto lorsque vous générés votre second wallet pour la première fois, pour vous expliquer que vous pouvez drag and drop une tuile sur l’autre pour effectuer une transaction entre vos wallets
  • Information au sujet des frais de transactions disponible sur la fenêtre de transaction (popup ouvrable en cliquant sur le (i) à côté du montant du frais)
  • Choix du wallet par defaut lors du paiement plus pratique, via un dropdown (liste défilante) au lieu d’un nouvel écran
  • Amélioration du PDF d’impression du mnemonic
  • Distinction de la tuile du portefeuille membre dans votre coffre, mise en valeurs, avec affichage du nombre de certifications émis/reçus
  • Changement de methode pour le responsive, j’en profité pour globalement grossir légèrement tous les éléments et texte dans l’app que je trouvais trop petit sur grand écran. Vous me direz si ça ne vous parait pas trop gros.
  • Implémentation des Datapods: Uniquement pour les avatars. Désormais, lorsque vous choisissez un avatar pour votre wallet, il sera uploadé directement sur le datapod (qui ne l’acceptera que si votre wallet à un solde non nulle). J’ai travaillé un système de cache dont je suis assez satisfait, basé sur la date de dernière mise à jours du profile, et celle de l’avatar locale.
  • Tous les wallets dans les vues de recherches et contacts (partout) récupère leur avatar du datapod, qui comporte toutes les données importés de la G1, donc tous les avatars sont visibles pour tout le monde. Le système de cache de ce côté se fait par session, chaque avatar chargé est stocké localement et sera effacé au prochain redémarrage.

L’app vous informera de l’oublie de votre coffre pour cette montée de version, qui voit le modèle de donnée des wallets changer.
Ce n’est pas exhaustif mais j’essaie de rendre les nom de commit intelligibles pour le reste.


Pour la suite, voici quelques points que je compte travailler, pas forcément dans l’ordre:

  • Changer le système de pagination de l’activité pour laisser tomber l’API relay, étant donné que leur équipe ne semble pas déterminé à la corriger: Limit number of rows parameter shouldn't be limiting with pagination using relay API · Issue #9578 · hasura/graphql-engine · GitHub
  • Pourvoir migrer son identité vers un wallet extérieur à son coffre
  • Implémenter le système de Distance, mais j’attends avant que les travaux avancent côté Duniter pour simplifier ce système
  • Passer de l’indexer Hasura à Squid, ce qui sera l’occasion de voir ce qu’il manque à Squid, et peut être y contribuer
  • Refonte totale du système de code PIN … Là dessus, je vais peut être me mettre à dos les plus sécuritaire d’entre vous, mais après de longues réflexion et analyse de ce qu’il se fait à côté, j’ai l’intention de lâcher cette histoire d’entropie, et de proposer à l’utilisateur de renseigner un code PIN numérique à 4 chiffres de son choix, simplement en vérifiant qu’il ne s’agit pas de code suite ni du répétition de 4 même chiffre. Je pense que ce sujet amènera des débats et discutions intéressantes. Le but pour moi n’étant pas d’empêcher un hacker qui se serait procurer votre fichier chiffré depuis votre stockage directement, mais simplement de protéger votre coffre via l’UI, avec attente d’1 minutes incrémentale à chaque suite de 3 échecs de code PIN par exemple.
    Quelqu’un en possession de votre fichier chiffrer pourra le bruteforcer même avec les codes actuels, simplement il lui faudra quelques heures au lieu de 10 jours.
    J’ai songé à l’idée de rallonger le PIN user avec un gros hash secret intégré à l’app et connu seulement par moi et les mainteneurs de Gecko, à renseigner en .env, mais là ça va rallonger encore plus nos débats :laughing:
  • Changer le suivi des transactions pour les faire apparaître en cours directement sur la vue activité de son wallet, à la manière de gecko web.
  • Réflexion sur l’utilisation ou non des autres champs de profiles datapod disponible, j’ai repris exactement ceux de Cs+ (les données G1 sont même importés), mais je ne sais pas encore ce que je vais utiliser ou non. C’est surtout le nom de portefeuille qui me pose question, je ne sais pas encore si je dois sync les noms de portefeuilles locaux avec ce champs, et permettre une recherche dessus (pour la recherche je ne pense vraiment pas, mais à voir…)
  • Corriger les petits bugs que je vois déjà, comme l’inaction du bouton pour aller vers son coffre dans la bar d’action du bas, et les petits mouvements de l’avatar sur la vue profile lors du chargement…

Depuis ma reprise en Novembre, je me fait mes tickets sur papier uniquement, laissant de côté les issues du gitlab, mais j’ai commencé à les reprendre, je vais probablement me resynchroniser dessus prochainement.

6 Likes

Ça déménage !! Pour ceux qui ont un compte membre et voudraient tester le parcours de certification de manière utile, vous pouvez piocher dans Listes des membres ĞDev en attente de certifications

1 Like

Quand j’essaie de certifier bgallois, je passe par la recherche de compte et je colle sa clé publique, je vois son compte dans la liste (tout seul bien sur)
quand je clique dessus j’arrive sur cet écran et çà mouline sans résultat…

2 Likes

J’ai bien une issue Sentry correspondante: Sentry

Ce qui me permet reproduire précisément ton essaie, qui n’est plus une erreur dans ce dernier build de Gecko car j’avais comme par hasard changé ma manière de détecter la correspondance des adresses.

Auparavant en mode aveugle comme à l’ancienne sur la v1:

bool isAddress(address) {
  final RegExp regExp = RegExp(
    r'^[a-zA-Z0-9]+$',
    caseSensitive: false,
    multiLine: false,
  );

  if (regExp.hasMatch(address) == true &&
      address.length > 45 &&
      address.length < 52) {
    return true;
  } else {
    return false;
  }

Et désormais en utilisant la lib polkadot.js directement:

Future<bool> isAddress(String address) async {
  final sub = Provider.of<SubstrateSdk>(homeContext, listen: false);
  return await sub.sdk.api.account.checkAddressFormat(address, sub.initSs58) ??
      false;
}

Tu as oublié une lettre à la fin de l’adresse de bgallois: 5F6xAX1k6eRKUGrF7exifKcS2K2SB781Cn6soV1kahjwkGpg

Ca ne devrait plus se reproduire.
Aussi lorsque tu as une adresse de copié dans ton presse papier, quand tu va sur l’écran de recherche, le bouton d’action est directement actif et indique “Coller l’adresse depuis le presse-papier”. Ta juste à cliquer et tu arrives sur le compte, plus simple que de coller dans la zone de recherche et passer par l’écran de résultat.
Mais les deux doivent fonctionner, que ce soit une adresse valide ou non. Tu confirmes ?


Du coup ya quelques nouveauté encore dans ce build (que je ne pensais pas publier maintenant, mais j’ai ajouter un meilleur catch error pour être sûr à 100% que l’erreur de maaltir ne de reproduise jamais, donc je préfère sortir ça maintenant):

  • Le suivi des transactions se fait directement sur l’écran d’activité du compte émetteur, plus d’écran spécifique à ça pour les paiements :slight_smile:
  • Affiche les avatars vraiment dans toutes les listes dans l’app
  • fix du bouton portefeuille de l’app bar
  • Adaptation de la taille du text à certains endroits. J’y vais vraiment à taton en grossissement et rétrécissement, ce n’est pas très pros ce que je fais là dessus, il faudra probablement encore homogénéiser mieux les tailles de texte dans l’app. Pas facile de bien se rendre compte dans le grand émulateur.
  • Nouvel écran de migration d’identité: Désormais vous pouvez migrer votre identité vers un portefeuille extérieure (sans ça c’est un peu inutile…). Vous rentrer votre nouveau mnemonic ainsi que l’adresse de destination, gecko check si l’adresse appartiens à une des dérivations, et procède à la migration si les checks sont ok.
  • Changement du system de pagination GraphQL pour l’historique des transactions: J’ai troqué l’API relay d’hasura par la pagination classic avec offset et numéro de page incrémentale. Il n’y a donc plus de soucis pour remonter jusqu’au tout début de l’historique de chaque compte.
  • Possibilité de refresh l’historique ainsi que la vue certifs émises/reçus en tirant l’écran vers le bas (pull to refresh), sans reloader tous l’écran, plutôt optimisé.
  • fix: affichage correct des certifications reçus sur l’écran en question, aupravant il affichait les certifs émises aussi bien dans la partie reçus que émise… bug là depuis quelque temps.
  • Connection websocket graphql global pour l’indexer et le datapod dès le démarrage de l’app. Donc maintenant toutes les connections dans gecko mobile sont en websocket, il n’y a plus de requêtes http. Ca permet de garder chaque connection active tant que l’app est lancé, et ne pas recréer de nouvelle connexion à chaque requête. Et ça m’ouvre la voie pour permettre d’automatiquement changer de endpoint indexer si il tombe pendant que l’app tourne, en tâche de fond.
  • Verrouillage du cas d’erreur de Maaltir

3 Likes

Je confirme, je m’étais planté en faisant le copier collé, le bouton d’action est directement actif quand il a une adresse valide dans le presse-papier, et grisé si c’est une adresse invalide.
Mais quand je fais un retour arrière après avoir trouvé le compte, si je copie autre chose dans le presse-papier, le bouton reste actif.
Et inversement, si je n’avais pas une bonne adresse la première fois et que je copie une bonne adresse, le bouton reste grisé. Et dans ce cas-là, il mouline pour trouver un résultat qui ne viens pas…

Il semble que les certifs d’un nouvel entrant n’apparaissent pas, est-ce normal tant qu’il n’en a pas 5 ?

1 Like

Oui tant qu’il est pas membre l’indexer ne les indexes pas étrangement. Ca sera probablement pas le cas avec squid.


Ok je connaissais ce comportement @Maaltir , et j’espérais que personne ne remarque ça ahaha.

Bon du coup j’ai résolu ça, comme j’ai pu … fix: listen clipboard changes in search screen (f1208846) · Commits · clients / Ğecko · GitLab

2 Likes

Étrange en effet, ça doit être toujours le même bug où les événements ne sont pas ajoutés dans le bon ordre sur duniter-indexer. Et en effet sur squid je n’ai pas ce pb :

3 Likes

2 posts were split to a new topic: Quel indexeur utiliser et scan réseau

J’ai enfin réussi à installer Gecko sur un téléphone “moderne” qui n’a pas de pilotes bloqués comme replicant (je suis avec le système /e/ !).
Je vois juste des portefeuilles, je vois pas où sont les certifs, et j’ai l’impression de ne pas trouver de pseudos parce que je ne trouve pas de portefeuille avec la recherche “poka”.

Bon… je vais prendre le temps de regarder, en tout cas ma clé publique est 5CK6hcoF7yysnP2k1P4DnhRcuPrmNaQ7sYsVb88VUareVsLP

Quand je fais “importer son ancien compte”, il me fait une roulette qui dure super longtemps, et ça marche pas car va pas plus loin… (j’aurais peut-être dû essayer sous android avant de tout virer pour mettre /e/ :sweat_smile: )

Ğecko n’est pas à jour, les changements de runtime et d’indexer n’ont pas été réperctués. Le projet est en standbye en attendant que le reste de l’écosystème se stabilise.

Désolé :wink:

2 Likes

@hypericum j’ai mis à jour Ğecko sur le dernier runtime gdev et la dernière version de l’indexer squid hasura si tu veux.

3 Likes

J’ai quelques questions (bêtes ptèt) du coup:

  • c’est normal qu’en-dessous de 5G1 je peux pas faire de virement d’un portefeuille à l’autre mais vers mon compte cesium v2
  • je trouve bien mon compte cesium v2 dans l’annuaire mais en cherchant des pseudos en pensant trouver comptes certifiés et forgerons j’en vois pas
  • quand je veux effectuer un virement à partir de mes contacts il me met un clavier numérique, mais quand je fais flèche du bas comme pour virer le clavier il descend et remonte très vite, on peut avoir les chiffres en plusieurs langues (ce dernier point paraît normal)

C’est dû à la taxe de création de compte de 3ĞDev qui a été supprimée, j’ai oublié d’enlever le check côté gecko.
S’ajoute à cela le dépôt minimum de 2ĞDev par compte, qui lui est toujours là.
Donc quand tu envoies des sous vers un nouveau compte, il faut envoyer plus de 2ĞDev (correction à apporter côté gecko pour retirer la taxe de création de compte).
Quand tu envoies vers un compte déjà alimenté, cette question ne se pose pas.

Je ne comprends pas ce point, il me faut plus de contexte, avec un exemple précis et clair s’il te plaît.
Tu n’arrives pas à chercher des pseudos via la recherche ? En tapant quoi exactement ?

Ah ok je pense comprendre, je me souviens de ce bug que j’ai introduit en corrigeant le menu déroulant de ta liste de portefeuilles sur ce même écran de paiement. Le bouton précédent ne suffit plus à fermer cet écran, il faut cliquer explicitement soit à l’extérieur de la fenêtre contextuelle, soit sur la croix.
Bug à corriger.


J’ai sorti cette version pour garder un état fonctionnel de l’application actuelle.
Ça m’a tout de même pris la journée à tout adapter, car il y avait les changements de requêtes indexer à effectuer, j’étais encore sur l’indexer de manu, mais aussi les changements sur le dernier runtime gdev que j’avais oublié.
Ah et aussi les datapods que j’ai dû désactiver de l’application étant donné qu’il a été décidé de partir sur une autre solution.

Mais en parallèle je travaille sur la bibliothèque Durt2 qui utilise une autre bibliothèque que Gecko pour la connexion à Duniter v2s, Polkadart, une bibliothèque full Dart contrairement à Polkawallet actuellement implémenté dans gecko, qui est un wrapping Javascript de la bibliothèque polkadot.js.
Cela implique entre autres une implémentation de gestion du stockage et du chiffrement du portefeuille, en plus du changement sur l’interaction avec Duniter.
Mais aussi une façon plus fiable de générer les requêtes GraphQL, en générant le schéma graphql, ce que je ne faisais pas dans Gecko.
Et enfin, j’implémente ça dans une nouvelle application en utilisant un nouveau système de changement d’état nommé Riverpod au lieu de Provider, ce qui change aussi pas mal la manière de faire.
Je profite de cette refonte pour mieux séparer les responsabilités.
Aussi, il y a des changements d’expérience utilisateur que j’aimerais effectuer pour simplifier l’usage de son/ses portefeuille(s).

Donc il faut comprendre que vu qu’on n’est pas pressé, je compte recoder Gecko de zéro, car j’ai essayé plusieurs fois d’intégrer Durt2 à l’application actuelle, mais ça fait beaucoup de changements, et je préfère refaire mieux des choses que je ne trouve pas idéales que de colmater l’existant.

Pour mémoire, le développement de cette application a commencé sur GVA en 2020, en partant de mon premier “Hello World” Flutter.
Tout ça pour dire, je ne sais pas trop quelles disponibilités je vais avoir pour continuer ce chantier, mais cette refonte corrigera peut-être les bugs et défauts actuels de l’application, et en amènera probablement d’autres.

2 Likes

J’y arrive maintenant!

1 Like

Je n’arrive pas à faire un virement en glissant de portefeuille courant à portefeuille 2, il y a 7.46 ĞD sur le courant, et 4.03ĞD sur le 2

Mais en faisant la recherche du portefeuille 2 avec la loupe dans le menu d’accueil, c’est possible, j’en suis donc à 6.29 sur le courant et 5.03 sur le 2

J’en parle quand même, même si poka parle de refonte, on sait jamais.

(mon tél est un S9+ sous /e/OS)

Quand tu dis que tu n’y arrives pas, que se passe-il exactement ?
Un message d’erreur ?
Un bouton grisé ?
Est-ce qu’un screenshot pourrait m’aider à comprendre ?

Oui, je découvre le screenshot de ouf en vidéo et le montage expéditif en ligne de commande avec ffmpeg

Voici la vidéo du bug (du coup les montants ont changé mais ça devrait pas bloquer de ce côté)

1 Like

Bon j’ai découvert que plein de soucis étaient liés à des soucis de domaines bloqués donc rien à voir avec gecko, désolé de pas l’avoir vu plus vite.
Donc ptèt pas en tenir compte (ça marche là je vois même les certifs)