Extension duniter-connect (fork de polkadot{.js})

Et bien désormais si !

Téléchargez la dernière version:

Installation

Firefox

Via le store:

Manuellement:

  • Téléchargez duniter-connect.zip
  • Rendez-vous à l’adresse: about:debugging#addons
  • Cliquez sur “Charger un module complémentaire temporaire…”
  • Sélectionnez le zip

Chrome

Via le store:

Manuellement:

  • Téléchargez duniter-connect.zip
  • Extraire le zip dans un nouveau dossier
  • Rendez-vous à l’adresse: chrome://extensions/
  • Cochez “Mode développeur”
  • Cliquez sur “Charger l’extension non empaquetée”

Utilisation

Source du dépôt

6 Likes

Le magicien est de retour :magic_wand:

Vraiment super initiative qui va nous simplifier la vie ! Maintenant plus besoin de s’embêter à migrer le comité technique ou utiliser Ğcli, ou attendre Ğ1companion v2, on peut voter directement avec les clés Cesium dans l’app polkadotjs :heavy_heart_exclamation:

2 Likes

A quelques heures près, je n’aurais pas migré mon compte au Genesis :sweat_smile:

2 Likes

Oui au début je voulais finir ça en rush avant que vous ayez à rebooter la gdev mais j’ai été retardé par des tentatives de debounce, les messages handling et quelques détails, j’ai donc préféré faire les choses propres.

Je vais ressortir une version avec debounce, affichage pubkey v1 et une petite optimisation lors de l’import.

Je suis content j’ai réussi à m’en sortir malgré le fait que je ne connais kedal à cet environnement de dev.

Je suis presque tenté de continuer plus loin ce fork pour l’adapter au max à notre usage Ğdev, c’est du React, je verrai.

2 Likes

Nouvelle version disponible (j’ai mis à jours le liens du sujet):

  • ajout de debounce sur les champs ID et password
  • optimisation de l’importation du portefeuille
  • affichage des pubkey v1 au dessus des adresses v2

Pour mettre à jour l’extension il vous suffit d’effectuer la procédure d’installation de nouveau sans désinstaller avant, ça va mettre à jours sans perte de données.


Je pense m’arrêtez là sur ce fork pour le moment, c’est tout ce qu’il manquait.
Mais je commence à m’y retrouver dans ce code, c’est du pure react donc pour ceux qui connaissent, on peut tout à fait faire évoluer cette extension comme on veut.

Je migrerais le dépôt sur le gitlab, et on pourra publier l’extension sur les stores, et l’ajouter à notre liste de clients :wink:

3 Likes

Je suis hyper impressionné par ce que tu fais. Après une longue absence tu retournes dans le projet et apportes une contribution ultra pertinente à laquelle personne ne s’attendait et qui va énormément nous simplifier la vie. Ça me rassure de te savoir à nouveau à nos côtés sur ce projet, même à petite dose, et ça me motive encore plus à finir cette migration “rapidement”.

5 Likes

C’est gentil mais ce n’est pas grand chose tu sais, 2 jours de taf pour ajouter cette feature en apprenant à comprendre l’architecture de la partie qui m’intéressait :slight_smile:

J’ai renommé l’extension duniter-connect, histoire d’avoir un nom un peu mieux, car après réflexion je pense que je vais continuer de la faire évoluer dans le sens de nos besoins.
Même si bon ça ne permet pas de se connecter directement à Duniter, mais c’est un engrenage nécessaire qui le permet via des clients donc bon …

Et ça laisse le champs libre à un potentiel future Ğ1Compagnon ou Ğ1-connect plus élaboré from scratch.

J’ai mis à jours le poste principale avec un lien vers les dernières releases. Le dépôt se trouve désormais sur notre gitlab.


J’ai entamé la procédure de publication sur les store firefox et chrome, c’est en cours de validation.
Mais j’ai été bloqué sur le store chrome, ce qui a consumé toute ma journée d’hier là où je ne pensais pas y passer plus d’1h ou 2h…

Explications

Le chrome store n’accepte désormais plus les nouvelles extensions munies d’un manifest v2 (le cas de polkadot.js extension).

Je me suis donc lancé dans la migration vers un manifest v3 en suivant cette procédure officielle.

Mais c’est plus compliqué que ça en en l’air, voir cette issue de polkadot.js: Remove persistent background pages (basically eol in Chrome) · Issue #310 · polkadot-js/extension · GitHub

J’ai donc finit par reproduire à la main tous les changements effectué dans ce commit d’un fork de polkadot.js maintenu par l’équipe de Cardinal, ce commit: A0-2249: Upgrade the extension to the V3 of manifest and adapt the co… · Cardinal-Cryptography/aleph-zero-signer@d2f9e92 · GitHub

Ce qui nous donne ce commit sur une branche dédié: wip: first changes to migrate to manifest v3 (d513bb7a) · Commits · clients / duniter-connect · GitLab

Basiquement cela implique un changement d’architecture du script de background.js pour en faire un service_worker, qui ne tourne plus aussi librement en tâche de fond comme c’était le cas avant.

Par miracle j’ai réussi à le faire fonctionner dans chrome et firefox, mais il y a des petits bugs de privilège, les popup d’injection de wallet ne s’affichent plus automatiquement, il faut explicitement clique droit sur l’icone de l’extension et autoriser manuellement la page actuelle à communiquer avec l’extension. Et je soupçonne quelques soucis d’optimisation du service_worker…

DONC, je n’ai pas mergé et je vais sagement attendre que les devs de l’extension le fassent…
J’ai tout de même proposé en publication le version chrome manifest v3 non opti sur leur store, et la version manifest v2 sur le store firefox.

Car je me suis rendu compte que cette manière d’installer les extensions manuellement n’est pas persistante au redémarrage du navigateur, ce qui est un peu ballot…

4 Likes

C’est pas tant techniquement (je suis d’accord, il suffit de se plonger dedans) que le fait de mettre le doigt sur un aspect bloquant du projet et de développer l’outil qui va simplifier la vie de tout le monde. C’est la pertinence de la contribution qui me frappe :smiley:

3 Likes

Énorme ce que tu as fait là !!!
Forker l’extension polkadot, il fallait oser :star_struck:

Oui, ça implique pas mal de changement ce manifest v3 !
J’ai bloqué dessus aussi, et laissé tomber le développement de g1-companion depuis.

Il y a énormément de code dans cette extension qui ne nous est pas utile pour la June.
Peut-être qu’il est plus simple d’intégrer directement polkadot.js dans g1-companion.
En tout cas, je vais avoir besoin de ce que tu as fait pour permettre la migration v1 → v2 dans g1-companion.
J’espère pouvoir m’y remettre dessus vers mi-janvier…

3 Likes

Oui et non, en fait cette extension fait très peu de choses.
Ce qu’on peut retirer est:

  • La possibilité d’exporter et d’importer un trousseau, si l’on décide que ces exports/imports ne doivent se faire que via mnemonics
  • Les ledgers accounts qu’on n’utilise pas pour le moment, mais ça pourrait venir
  • Restreindre le choix des réseaux à ceux de ĞDev, ĞTest et Ğ1 (ici ça n’implique qu’un changement de prefix ss58)

Et en fait c’est tout, ce n’est même pas nécessaire de virer du code car il y a très peu de fonctionnalité, on peut “juste” refaire totalement l’UI et l’UX si on veut, et ajouter des fonctionnalité type connection à un réseau gdev, gtest ou g1, import de données indexer ou datapod liés aux wallets, organisation en coffres de dérivations type gecko, avec scan de wallets actifs à l’import, ect …

Oui en fait l’un ou l’autre je pense que c’est surtout une question de goût et de couleur.
Perso comme je n’ai pas d’expérience particulière en dev web, et encore moins en extension navigateur, c’est beaucoup plus simple pour moi de forker un existant en suivant l’architecture proposé en pré-supposant que c’est une bonne architecture.

Après c’est qu’une question d’approche et de techno, React ou Vue.js.
Je ne garanti pas que je me lance dans cette aventure React donc en vrai ça sera surtout une question de qui fait quoi en premier et jusqu’à quel point :slight_smile:

On peut aussi avancer sur deux approches différentes, pour moi l’idée de Ğ1companion c’est d’aller bien plus loin qu’un simple gestionnaire de wallets Ğ1v2, on parlait d’authentification type SSO vers des pages web par exemple, l’intégration de smoldot, ect …


En tout cas pour le moment gecko web est bien connecté à duniter-connect et permet donc de faire des transactions sans soucis (videz votre cache si bugs j’ai encore fait des modifs), reste à intégrer les certifications et la gestion de son identité et ça nous fait un client grande publique complet.

1 Like

L’extension a été approuvé sur le store de Mozilla: Duniter connect – Adoptez cette extension pour 🦊 Firefox (fr)

Y’a déjà une critique avant même que je vois l’approbation ou que j’envoie le lien à quiconque :joy:

C’est qui Altaïr ? @Maaltir ?

4 Likes

Non Altaïr n’est pas un compte à moi…

1 Like

C’est utile de pouvoir tester des trucs sur les autres chaînes comme Polkadot, or pour éviter les conflits il vaut mieux ne laisser qu’une seule extension activée.

Ça sera aussi utile à d’autres gens qui voudraient développer une autre monnaie ou juste tester.

1 Like

Je m’appelle Hugo Abel Altaïr :slight_smile:

2 Likes

Extension avec manifest v3 approuvé sur le chrome store:

En faite cette version manifest v3 que j’ai bricolé fonctionne très bien sur chrome, mais moins sur firefox (soucis de permission manuelle et peut être d’optimisation). D’où le fait que j’ai préféré garder le manifest v2 de base pour firefox.

Le seul soucis sur chrome est le popup de signature d’extrinsic qui reste ouvert après validation en affichant le home de l’extension, ainsi que la largeur de ces popup un peu trop étroite. Rien de bloquant.

Duniter connect sur chrome est donc plus à jour que polkadot.{.js} ^^
J’ai commenté leur issue.

1 Like

Ceci dans la boîte mail axiom :

Hello,

Due to issues discovered during the review process, one or more versions of your add-on Duniter connect will be disabled on addons.mozilla.org in 1 day(s). Please see the reviewer’s comments below for more information.


Details:
This add-on didn't pass review because of the following problems:

  1. Please provide us with detailed information on how to test this add-on. If authentication to a website is necessary, give us a test username and password to facilitate our work. This can be provided in the Whiteboard field, which can be found in the Edit Listing page under the Technical Details section. This information is only available to reviewers.

Version(s) affected:
0.47.0


Please address the issues raised in the reviewer’s notes and inquire about any unclear items. Afterwards, please upload a new version of your add-on at Mozilla accounts.

To respond, please reply to this email or visit Mozilla accounts. If we do not hear from you within 1 day(s) of this notification, these versions will be removed from addons.mozilla.org. Current users of these versions will be unaffected.

Thank you for your attention.

Apparemment il faut leur donner des informations pour tester l’addon. Étrange. Qui fait ça ?

2 Likes

Toujours dans la boite mail à 11:52 (le précédent était à 11:15) :pray:


Vous avez activé l’authentification en deux étapes
Un code de sécurité issu de votre application d’authentification est désormais requis à chaque connexion.
Vous l’avez activée depuis :
Opera sous Linux
mercredi, 20 déc. 2023
11:52:16 (CET)


et un bouton pour pouvoir gérer le compte. @poka ?

Oui c’est moi, le TOTP est obligatoire, j’ai partagé la phrase dans le login sur le vaultwarden.

1 Like

J’ai reupload une version (identitique) avec ces instructions dans la partie concerné:

To test this module:

  • Click on + button top right
  • “Import Cesium wallet”
  • enter “test” in ID, and “test” in password (this is a test wallet on ĞDev network)
  • Click Next button
  • Choose a name for your local wallet, and a personal password
  • Go to https://gecko.axiom-team.fr website
  • A popup should ask you yo allow inject your test wallet on the page, select it and accept it
  • You should see your test wallet on bottom left, with balance
  • You can click on an random existing wallet and try to send money (this is a test currency network)

Je ne sais pas du tout si c’est le genre d’instruction qu’ils attendent, mais le wallet test/test est alimenté sur la gdev si ils veulent jouer avec…

Wouf, Mozzila vient enfin de revalider l’extension sur leur store.

C’était un vrai parcours du combatant, j’ai copié nos échanges techniques ici pour mémoire pour ceux que ça intéresse de savoir comment ils procèdent … Mozilla est précis... - CodiMD

3 Likes