Cesium² : top départ!

Aussi, j’ai pas trouvé un .gitlab-ci.yaml dans le repo (master). Quan tu @kimamila dis “J’en ai qui tourne, mais je dois les adapter à Angular 17.” où est ça?

En attendant une réponse, j’ai crée un CI minimaliste qui au moins sert à illustrer le problème des fichiers qui manquent. SVP @kimamila si tu as du temps pour regarder à ça, sinon je pense qu’on est tous bloqués dans le moment Minimal CI to get started (!4) · Merge requests · clients / Cesium-grp / cesium2s · GitLab

1 Like

Le MR !4 a été fusionné.

J’ai ajouté les fichiers manquants au develop et master.
Ca devrait maintenant compiler.

Désolé pour le délai. Je fais comme je peux.

1 Like

Merci bien! J’éspère m’y remettre la semaine prochaine au retour de mes vacs. Aucune suggestion pour la prochaine tâche? Je voudrai prendre la issue que tu as écrit et en faire un breakdown en tâches minimales independantes et commencer par une d’elles.

J’ai ajouté quelque truc sur le projet (branche develop) :

Paramètres

  • Changement du noeud Duniter, via une fenêtre modal de sélection;

  • Ajout d’un bouton pour passer en mode sombre (en haut à droite) :


  • En mobile : Application des paramètres à chaque changement
    (en bureau il faut les appliquer via un bouton “enregistrer”)

Mon compte

  • correction de mise en page
  • choix du portefeuille par dropdown, en mode bureau

Annuaire

  • Correction sur la page d’affichage d’une identité

CI / construction

Voilou !

7 Likes

Voici une version Android (APK signé) qui fonctionne : app-release-signed.apk - Google Drive

J’ai donc maintenant un socle qui fonctionne pas trop mal (je crois) et vraiment opérationnel pour monter en charge l’équipe de dev.

De mon côté, voici les prochaines étapes qui concerneront toujours le socle :

  • CI :
    • Ajouter les tâches pour faire les releases / tags git
    • Voir si on builder l’APK Adnroid (pas sûr, sans ouvrir Android-Studio…)
  • Service :
    • Ajout de service graphQL, pour me connecter à un indexeur.

Je voudrais commencer par tester ceci :

  • Recherche dans la Wot :
    • Recherche par [UID, pubkey, address]
      • est-ce possible de faire un “OR” sur ces trois champs ?
      • La pubkey V1 n’est peut-être pas indexé ? Dans ce cas je pourrais la calculer et faire une recherche uniquement sur [UID, address]
  • Récupération de l’historique du compte :
    • Récupération des TXs émises/recues, depuis une address
    • Recherche des certifications émises/recues

C’est déjà pas mal dans un premier temps :slight_smile:

@HugoTrentesaux d’abord toi sur quel indexeur je dois partir ? Lequel maintiens tu ?

3 Likes

Je l’ai installer, ça fonctionne.
J’ai voulu tenter de récupéré mes comptes gecko avec la phrase de restauration, mais je ne tombe pas sur le même compte. Je suppose que c’est une histoire de dérivation.
Il vas falloir vous entendre sur le vocabulaire utilisé pour les users lambda.

1 Like

Merci de ton test. Pour l’instant l’App est encore très buggé.
L’assistant de création de compte par phrase de restauration est sans doute à revoir.

Je conseille d’utiliser la connexion par identifiant secret et mot de passe, car c’est la cible prioritaire de cette migration de Cesium. Les nouveaux comptes pourraient par exemple utiliser Gecko.
A terme cela fonctionnera, bien sûr, mais je dois y aller par étapes… et déjà faire de l’iso fonctionnel, pour que les utilisateurs de Cesium v1 s’y retrouvent

1 Like

Je maintiens duniter-squid et je pense que c’est une meilleure option pour le long terme pour des raisons qu’il me reste à détailler par écrit. Il est juste trop tôt pour migrer les clients qui utilisent duniter-indexer (Ğecko et Ğecko-web) parce que ça va encore pas mal bouger.

Sur https://subsquid.gdev.coinduf.eu/graphql tu peux faire par exemple :

recherche d’identité par uid

query MyQuery {
  identities(limit: 10, where: {name_containsInsensitive: "ben"}) {
    name
  }
}

recherche d’identité par adresse

query MyQuery {
  accountById(id: "5Cn8tEqF1rBGpUFJgqnadsS9AyczHePrqb9rskzATmsZTeDN") {
    id
    identity {
      name
    }
  }
}

Par contre, pas par pubkey, c’est l’adresse au format ss58 qui a été choisie comme index. Mais tu peux obtenir l’adresse côté client depuis la pubkey.

exemple de recherche avec un “OR”

query MyQuery {
  accounts(where: {id_eq: "5Cn8tEqF1rBGpUFJgqnadsS9AyczHePrqb9rskzATmsZTeDN",
  OR: {identity: {name_eq: "poka"}}}) {
    id
    identity {
      name
    }
  }
}

La pubkey base58 n’est pas du tout indexée pour l’instant, mais on peut faire un index de plus si nécessaire. (mais théoriquement on ne devrait pas chercher par clé publique partielle, ce n’est pas fait pour).

Tu peux utiliser transfersIssued, transfersReceived, certIssued, certReceived.

2 Likes

Ok j’ai essayé avec un portefeuille que je n’ avais pas migrer.
Connexion OK.
Tentative de virement, c’est pas encore ça

J’ attends la suite des développements…
Merci pour votre boulot.

3 Likes

Ah zut, c’est parceque la monnaie Gdev est mal reconnue (le genesys a du changer - et moi je teste souvent en local) et que les fees sont mal récupéré (coté Cesium).
Bref, je vais corriger en mettant des valeurs par défaut.

1 Like

Salut, et beau boulot. J’ai maintenant un environ locale qui tourne et des défauts qui ont l’air de marcher, au moins pour moi, contre un noeud locale.

J’ai trouvé un bug sur la fonction de transfer (mismatch of decimal units), facile à fixer, mais je ne suis pas sur aux règles des frais sur les transfers, et les remboursements. C’est documenté où çà? J’ai vu que le client ajoute des frais au transfer (je pense que c’est une erreur, parce que cette monnaie finit dans le wallet du destinataire) et après la blockchain registre un refund event.

Je peux faire un MR avec le bug et ce que je crois est la possible solution et on peut discuter là.

Une doute encore, je ne comprens bien la rationale pour les branches de master et develop… on veut travailler dans develop et merger sur master occasionellement, ou selon quelque critère…? Dois-je faire mes MR contre develop?

Oui, c’est mieux.
La mise à jour du master se fera lors d’une release.
Je suis en cours de préapration des scripts pour cela. :slight_smile:

Pour le moment, les frais sont en dur (à 0.01 GD). On peut laisser comme cela, histoire de bien prévoir l’interface graphique pour cela, car en prod il devrait y en avoir, si j’en bien tout suivi.

Nouvelle version 2.0.0-RC2 : app-release-2.0.0-rc2.apk - Google Drive

Dites moi si ca marche. mieux (cc @Maaltir). Je suis passé de APK à AAB, car plus simple à builder en ligne de commande. Donc on devrait pouvoir construire le fichier AAB via le gitlab CI.

@txels je viens de pousser sur la branche develop. Il ya maintenant des scripts (npm run android:xxx) pour :

  • android:prepare : preparer son environement de compilation Android
  • android:build : synchronize le code avec le projet Android dans <CESIUM2_ROOT>/android. A tester sous Android Studio ensuite
  • android:bundle ou android:bundle:release : Génération du fichier AAB en débug ou production.

Attention, pour le moment, il faut ajouter une fichier <CESIUM2_ROOT>.local/env.json comme suit :

{
  "JAVA_HOME": "/usr/lib/jvm/java-1.17.0-openjdk-amd64", // A path to a valid JDK 
  "ANDROID_SDK_ROOT": "/home/<A_USER>/Android/Sdk", // A path to Android SDK (if not exists will be created by the task 'npm run android:prepare'
}

Draft: fix: correctly compute transfer amount (!5) · Merge requests · clients / Cesium-grp / cesium2s · GitLab le MR avec le bug pour discuter.

Les AAB ne sont pas installables directement avec le fichier, ils sont uniquement destinés à être publiés sur le play store.
Sans passer par l’app store, il faut obligatoirement passer par des APK.

Ah zut. :frowning: Merci pour l’info !

EDIT: j’ai corrigé le lien vers la rc2

1 Like

Je ne sais pas si c’est que moi, mais je n’arrive pas à télécharger depuis tes liens GDrive. Sur PC ça mouline à l’infini, et sur phone ça fait carrément crasher mon navigateur !

Si tu veux tu peux utiliser https://cloud.axiom-team.fr, ta un bouton “s’incrire avec le forum Duniter” pour te connecter en SSO depuis ce forum.
Si tu fais ça tu me dis et je te fou du quota pour uploader (c’est une nextcloud hébergé chez moi, j’ai de la place, et j’ai la fibre).

1 Like

J’ai réussi à faire un virement :notes: :tada: :sparkler:
J’ai pu vérifier avec Gecko que le virement était bien fait !!!

3 Likes

Ok donc ya que moi qui n’arrive pas à télécharger l’apk :thinking: