G1-compagnon

Extension web pour la Ğ1

Dev :

Dépôt :

Version :
0.0.1

Specs :
à définir

Roadmap :
à définir…

4 « J'aime »

Salut à tous !

On avait l’idée de faire une extension web avec @poka, puis j’ai été relancé par @Katy et @ji_emme avec qui on a fait une visio il y a une dizaine de jours.

Je viens de mettre en ligne ce que j’ai fait pour le moment sur ce dépôt : Emmanuel Salomon / g1-compagnon · GitLab

L’extension web déchiffre et stocke les wallets dans le memory local extension. Je me connecte au même web socket que Césium et j’affiche un badge à la réception d’un message. Et sur n’importe quel site, quand on sélectionne une pubkey, ça va chercher les infos sur duniter et le forum si il y a le pseudo.
Un petit gif :

g1-companion

J’avais commencé il y a longtemps à faire des essais avec Quasar (vuejs) et Svelte. Mais rien de concluant. Puis j’ai trouvé vitesse-webext. C’est du Vue mais avec le bundler Vite, hyper rapide. @antfu le gars qui développe est un dev halucinant. Il y a des outils vraiment bien, c’est en typescript, et surtout un webext-bridge qui permet de faire passer des données simplement (sans mettre des listeners partout) entre la page option, la popup, le background et le contentScript. (oui, une extension web met du code un peu partout !)

Voilà, il n’y a pas de roadmap pour l’instant. C’est à l’état de POC. L’idée est de mettre en place en premier lieu un moyen de paiement simple pour n’importe quel site :
le contentScript lit la page à la recherche de quelque chose comme un <button pubkey="XXX" amount="10G1"> et ouvre la popup pour confirmer le paiement. N’importe quel administrateur de site n’aurait qu’à mettre ce bouton sur son site, un simple élément HTML. Ensuite, on pourrait injecter du code javascript pour donner au site plus d’infos du style :

g1.isConnected()
g1.isCertified()
g1.on('connect', () => ...)
...

D’où ma question dans la visio des devs de ce soir de savoir si il vaut mieux s’inspirer de l’api de metamask, polkadot ou squid ?

Une extension web pourrait faire plein de chose, comme fournir un moyen d’authentification pour les sites. Plus besoin de login à fournir ! J’ai plein d’autres idées. Je suis sûr que vous en avez plein vous aussi !

6 « J'aime »

Je dirai que le mieux c’est de t’inspirer de l’API de l’extension polkadot.js :slight_smile:

1 « J'aime »

Bonjour,
est-ce que l’on pourra connecter g1compagnon à n’importe quel type de site et est-ce qu’il sera possible de s’en servir comme « bouton de paiement » sur les sites marchands en Ğ1 ?
Actuellement est-ce compatible avec la version actuelle de Duniter et y a t-il un intérêt d’essayer de l’utiliser avec la version actuelle de Duniter ?
Amicalement. :slight_smile:

C’est le but de l’extension ! N’importe quel site pourra ajouter un simple <button> en html et g1compagnon s’occupera d’activer le bouton et initier une transaction.

Pour l’instant l’extension ne fait pas grand chose, mais ce sera compatible avec la version de Duniter actuelle au moins pour faire une transaction. Je ne sais pas encore pour d’autre type d’actions avec Duniter…

1 « J'aime »

Merci pour le retour, hâte que cela soit fonctionnel ! :slight_smile:

Est-ce que tu pourrais nous faire un petit état sur l’avancement de G1-compagnon ? J’aimerais le mettre sur la page logiciels de duniter.fr en tant que logiciel « en développement », mais j’aimerais pouvoir donner un lien qui résume le projet.

Je dois avancer dessus depuis 15 j :confused: J’ai eu des contre-temps familiaux…

Pour l’instant :
La partie popup permet de rentrer son compte principal et ses portefeuilles.
@Katy et @ji_emme ont fait la partie paiement et sa fonctionne !
Il faut que je clean leur code et je fasse l’api qui sera injecté dans les sites pour permettre de faire des boutons de paiement…
Pour ça, je vais faire un petit site web qui explique le fonctionnement.
Je vais pouvoir m’y remettre cette semaine !

8 « J'aime »

N’hésites pas à demander de l’aide :wink: