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

Non ça veut dire que c’est pas bon si ta pas compris au premier coup d’œil :wink:

Cette fonction n’a pas été prototypé par Boris, et ça se ressent ^^

Faudra rendre ça plus clair.

1 « J'aime »

Je viens de télécharger et installer l’app, chez moi ça ne fonctionne pas, l’app ne s’ouvre pas :pensive:

Quand je regarde toutes mes app, pour gecko j’ai un écran blanc, et quand je clique sur l’écran de gecko la fenêtre disparaît et ça retourne sur mon menu principal.

Je pense que quelque chose plante au démarrage, mais je ne sais pas comment obtenir plus d’informations :confused:

1 « J'aime »

Je viens d’installer la stack de dev ğecko sur le laptop que j’emmène aux RML16 et ğecko plante au démarrage avec le message dans la console de debug :

Launching lib/main.dart on sdk gphone64 x86 64 in debug mode...
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
Error waiting for a debug connection: The log reader stopped unexpectedly
Error launching application on sdk gphone64 x86 64.
Exited (sigterm)

[edit] ça avait l’air dû à une collision entre le adb système et android studio. Et maintenant ça crash avec :

Launching lib/main.dart on sdk gphone64 x86 64 in debug mode...
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
E/AndroidRuntime(12227): FATAL EXCEPTION: pool-3-thread-1
E/AndroidRuntime(12227): Process: gecko.axiomteam.fr, PID: 12227
E/AndroidRuntime(12227): java.lang.IllegalArgumentException: gecko.axiomteam.fr: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
E/AndroidRuntime(12227): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
E/AndroidRuntime(12227): 	at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
E/AndroidRuntime(12227): 	at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
E/AndroidRuntime(12227): 	at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
E/AndroidRuntime(12227): 	at androidx.work.impl.utils.ForceStopRunnable.getPendingIntent(ForceStopRunnable.java:196)
E/AndroidRuntime(12227): 	at androidx.work.impl.utils.ForceStopRunnable.isForceStopped(ForceStopRunnable.java:128)
E/AndroidRuntime(12227): 	at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:93)
E/AndroidRuntime(12227): 	at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
E/AndroidRuntime(12227): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(12227): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(12227): 	at java.lang.Thread.run(Thread.java:920)

Une fois qu’on a un environnement qui marche c’est génial Flutter, mais avant d’en arriver là c’est un enfer :rofl:

1 « J'aime »

Alors d’abord, quelqu’un avec un fairphone 3 a rencontré ce pbm hier :

LateInitializationError: Field 'cesiumSeed' has not been initialized.

Preuve que le runtime Dart fonctionne bien, l’attribue late Uint8List cesiumSeed; n’était plus initialisé au démarrage de l’app, car plus utilisé nulle part, ce qui n’est pas possible pour un late.

Pas contre je ne sais pas pourquoi ne pas avoir eu ce problème en debug, d’habitude c’est le cas. Ni sur mon téléphone d’ailleurs !
C’est corrigé.

E/AndroidRuntime(12227): java.lang.IllegalArgumentException: gecko.axiomteam.fr: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

Ok merci @HugoTrentesaux, je pense que c’est l’origine du pbm d’@elois qui doit être sur Android 12:

    // required to avoid crash on Android 12 API 31
    implementation 'androidx.work:work-runtime-ktx:2.7.0'

Mon émulateur et mon phone son sur Android 11 donc j’avais pas cette erreur.

C’est corrigé aussi, tu me dira @elois si ça corrige bien ton pbm, et @HugoTrentesaux dans ton debug.


Nouvelle version 0.0.6+3:

Android: https://git.duniter.org/clients/gecko/uploads/e923477c1fcb24e90a54508ce879ef41/gecko-0.0.6+3.apk

iOS (non testé): https://git.duniter.org/clients/gecko/uploads/52f42758778ef3083525d9f0e5a2ceb9/Runner.app_1_.zip

3 « J'aime »

Oui je suis sous android 12

Incroyable, ça corrige mon problème !!

Maintenant Ğecko se lance bien, je viens de créer un portefeuille, c’est vrai que la procédure est longue, mais il faut bien ça pour s’assure que l’utilisateur comprenne bien les implications :slight_smile:

Par contre quand je paramètre l’url d’un nœud duniter-v2s, ça ne marche pas, il dit que le nœud duniter est injoiniable, c’est normal ? À noter que c’est un nœud dont le endpoint websocket est derrière un path, peut-être que tu ne gères pas correctement les path ? Fausse alerte, je n’avais pas saisi la bonne URL.

1 « J'aime »

Alors je n’ai encore jamais testé sur des path, je n’avais à disposition jusque là qu’un noeud en local.
Dès que tu me donne un endpoint avec path, je pourrais tester et fix si nécessaire.


Il faut bien mettre wss:// au début si c’est un noeud ssl, mais ça je pense que tu le sais ^^

1 « J'aime »

Dans le prochain build pour vendredi midi:

gecko-payment

Le Workflow de paiement a été entièrement retravaillé, plus rapide, avec suivis du status de la transaction.

Il suffit de cliquer dans le cadre bleu du portefeuille actuellement par défaut pour le changer :slight_smile:

6 « J'aime »

La dernière version de Gecko est dispo:

2 « J'aime »

ah ok, j’avais la v0.0.6+1003 , pas +5
I will try

There is a problem with name version in gecko view, everything after + show +1003 in menu, I don’t know why yet…

I got now +1005 but still it says « Aucune node trouvé »…

what is the address where u are connected?

Same as you:


Can you try this build please ?

This will show more debug with the endpoint it’s trying to connect in this snackBar if not connected.

1 « J'aime »

Avec gecko j’ai réussi à créer un compte :
5ETtnPbz89HHn2gsEUpmuQFZdXFG2rnL9Bm6e3H7Za3Hbib9

Dommage que la copie de clé ne prenne pas le checksum.
J’ai réussi à faire une recherche de portefeuille. :ok_hand:
J’ai même réussi à tenter de faire un virement de zéro ğdev (vu que je n’en ai pas) bizarrement cela a fonctionné jusqu’au timeout.

1 « J'aime »

Attention, le format d’adresse SS58 substrate n’est pas uniquement la clé publique, c’est :

  1. préfixe (42 pour la monnaie de test)
  2. clé publique
  3. checksum

Le tout est concaténé en binaire et ensuite écrit en base58.

Je viens de te faire un virement de 10 ĞDev pour que tu puisses faire des tests. Attention, il y a 3ĞDev prélevés quand un virement est fait vers un compte non membre (ils vont dans la trésorerie). Et le montant existentiel d’un compte est de 2ĞDev.

Oui il faut que je retire le format de checksum qu’on avait définit pour que ce soit plus clair.
Je vais mettre le mettre format que polkadot js affiche.

2 « J'aime »

J’ai bien 7 gdev sur mon compte.
La liste des opérations n’est pas encore utilisable ?

J’essaie de faire un virement : je recherche un compte, je trouve, je clique faire un virement, je mets un montant 3gdev, puis envoyer. Et la ça tourne et j’ai un Time Out.

Un petit truc quand je saisis le mot de passe, la saisie automatique me propose la fin. C’est pratique pour les tests, mais en terme de sécurité je trouve ça moyen.

L’historique n’est pas encore dispo car il nous faut un indexer pour cela type subsquid, pas encore mis en place.

C’est que Duniter ne renvoi toujours rien au bout de 12s ce qui n’est pas normal.
As tu mis à jours le dernier build .6+8 ?

Mais en théorie l’UI de Gecko ne devrait pas te permettre d’effectuer la transaction en amont si ton solde est 0, ou inférieur au montant rentré.

Ok je viens de fix, pour le prochain build.

Je viens de voir qu’il y a un nouveau build. Faut que je fasse la mise a jour.

Par contre j’ai bien 7 gdev, pour faire le virement.
Quand j’en avais zéro, il me laissait faire un virement de zéro, jusqu’au Time Out.

Je vais installer le nouveau build, et refaire les tests.

1 « J'aime »

Je ferme ce long thread pour en ouvrir un nouveau: Ğecko talks / users support

Les développement ont tellement changés depuis le début qu’il est temps de faire un peu de ménage.