Duniter-portal (fork de l'app polkadot.js)

Voici un fork de l’app polkadot.js: https://duniter-portal.axiom-team.fr

Code source: clients / duniter-portal · GitLab


Les changements initiaux par rapport à l’original sont :

  • :adult: Récupération des usernames depuis squid pour chaque adresse dans l’app.
    Le nom affiché sera donc par ordre de priorité soit :

    • Le nom configuré via votre extension duniter-connect pour les wallets importés
    • Le nom configuré dans votre carnet d’adresses
    • Le nom récupéré depuis squid
    • L’adresse si rien de tout ça n’a été trouvé


    tata tux étant tuxmain dans mon carnet d’adresses

    Le cache GraphQL d’Apollo est configuré de sorte à sortir les usernames en cache en priorité, sinon get sur le réseau.

    Ce comportement est le même à chaque endroit où une AddressRow est visible dans l’app.

    J’ai fait en sorte que l’affichage des adresses reste sync dans l’app, avec une mise à jour de l’état de l’adresse via React dès que la donnée squid a été reçue. C’est pour ça que vous pourrez observer l’adresse visible quelques millisecondes avant d’afficher le username (à peine perceptible).

  • :fist: Un rebranding de l’app pour être au nom et aux couleurs de Duniter.

  • :zap: L’ajout du réseau Duniter / ĞDev par défaut

    image

    Donc à l’ouverture, l’app se connectera par défaut à un nœud gdev aléatoire parmi ceux listés dans le menu de gauche.
    J’ai repris les nœuds listés dans ce topic : Liste des endpoints Duniter v2

    Pour mettre à jour cette liste d’endpoints, la couleur de l’UI pour ce réseau et autres paramètres spécifiques aux réseaux Duniter, rien de plus simple, ça se passe ici : packages/apps-config/src/endpoints/productionDuniter.ts · master · clients / duniter-portal · GitLab


Pour lancer votre propre instance :

  • clonez le dépôt
  • yarn
  • yarn build:www
  • Déplacez le dossier packages/apps/build nouvellement généré à l’endroit où vous souhaitez l’héberger, et configurez un vhost nginx basique qui pointe vers le index.html

Pour le reste, suivez le README :wink:

@HugoTrentesaux je te laisse déployer ça sur IPFS à l’occaz si tu veux, les 3/4 du README parlent de la config IPFS.

enjoy

5 Likes

Todo: https://www.perplexity.ai/search/voici-mon-code-react-trigger-t-rMfS8hFvRe.q4643ztWnQw

git clone164.76 Mio :man_facepalming: comment on en arrive à des repo si gros pour des bêtes app web, c’est vraiment lourd react, il faut que je prenne l’habitude de shallow clone ce genre de repo

yarn c’est bizarre :confused:

Ils sont vraiment débiles chez polkadotjs :angry: build error in dependencies (#1) · Issues · clients / duniter-portal · GitLab

Bah je voulais déployer sur IPFS en compilant à la maison, mais j’abandonne parce qu’ils me saoulent là.

4 Likes

Oui infernal, mais je pense que c’est leur historique git n’est clean c’est pas possible autrement, je ferais le clean ce weekend.


Il me tue ton ticket :rofl::sob:

Nouvelle version v0.142.4 (numéro de version visible en haut à droite de l’app) du portail.

Nouveautés:

  • Ajouts du noeud de @1000i100 (MR!1)
  • Optimisation du rafraîchissement de l’UI lorsque les données username proviennent du cache. l’UI n’est pas rafraîchie lorsque les données proviennent du cache, ce qui évite les micro saut.
  • Ajout d’effet de transition fade out/in lors de la mis à jour de username, 300ms, pour éviter l’effet coupure et rendre ça plus smooth à l’œil.
  • Requête récursive des usernames sur le champ wasIdentity tant que celui-ci n’est pas null. Tente de récupérer le username dans le champ wasIdentity si null dans identity, Nous avons donc désormais bien un username pour chaque smith.
  • Ajout du tag (oldAddress) pour les address correspondants à des identités migrés.
  • Retrait du uppercase sur les usernames de manière à garder la casse sur les noms d’identités.
  • Colonne des usernames plus large sur le home, et troncature des username moins agressive.
  • Retrait des requêtes de storage faites sur des palettes que nous n’avons pas: staking.account, democracy.locks et democracy.votingOf (commit 4e140f)

Pensez à reset votre cache ctrl+maj+r.

2 Likes

Vous savez pourquoi certaines adresses sont flag “Comité technique” et pas d’autres ?
Je veux dire, @HugoTrentesaux tu es bien au comité technique j’imagine ?

image


image

Même raison : lorsque l’on migre l’identité, l’adresse comité technique reste l’ancienne.

1 Like

Il m’arrive souvent que l’app ne fonctionne plus, après redémarrage de Firefox.
Ça semble être un problème de cache, que je n’arrive pas à résoudre avec Ctrl + F5.
Ça fonctionne des fois en mode privé, dans Chromium ça fonctionne.

1 Like

Est-ce que tu sais si le même problème se pose avec polkadot.js app ?
Est-ce que tu pourrais tenter d’ouvrir ta console JS et d’en coller le contenu lorsque ça t’arrive ?

pour refresh sans cache en général c’est ctrl + maj + F5

Je n’ai pas reproduit ce problème avec l’app plokadot.js.

Voici ce que j’ai dans la console :

Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content. [markup.js:250:53](resource://devtools/server/actors/highlighters/utils/markup.js)

None of the “sha384” hashes in the integrity attribute match the content of the subresource. The computed hash is “WiAZId0BK0D/AlDjef4mvZYt+hnM85jnWcdN4OdJ5CQbeBxuWKuh2okKzV/HJWEc”. [duniter-portal.axiom-team.fr](https://duniter-portal.axiom-team.fr/)

None of the “sha384” hashes in the integrity attribute match the content of the subresource. The computed hash is “OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua0vFImLlb”. 38 [duniter-portal.axiom-team.fr](https://duniter-portal.axiom-team.fr/)

Source map error: Content-Length header of network response exceeds response Body. Resource URL: https://duniter-portal.axiom-team.fr/type.20cd43a74d5c8907.js Source Map URL: type.20cd43a74d5c8907.js.map

Merci. Quand tu dis

Peux-tu préciser ce qui se passe exactement ? Une page blanche ? Un freeze total ?

edit: laisse tomber je viens en effet de reproduire le bug sur firefox. Page blanche.
Je ne testais naïvement en effet que sur des bases chromium.

Evidemment le bug ne se présente pas en mode dev, ce serait trop beau.

1 Like

Tout à fait, page blanche.

J’ai changé la config webpack, tu me dira si tu reproduis le bug ou pas, moi je ne reproduis plus. Toujours le warning des style css mais plus l’erreur de hash.
Il est même possible que la page charge plus vite qu’avant.

Parfois quand je refresh sans cache, j’ai une page blanche, mais même sur chrome en fait. A chaque fois que j’ouvre dans un nouvel onglet ou que je refresh normal (avec cache, f5 ou ctrl + r), ça charge tout de suite.

3 Likes

Merci, la page se charge de nouveau !

3 Likes

J’ai ajouté la prise en charges de DU non réclamé dans le calcul des soldes des comptes.

Avant:

Après:

Sur Ğecko web:


(rien à voir) J’ai aussi ajouté un fallback des noeuds squid si l’actuel est KO, parmis une liste de deux noeud actuellement:

const ENDPOINTS = [
  'wss://squid.gdev.coinduf.eu/v1/graphql',
  'wss://duniter-v2-vjrj-squid.comunes.net/v1/graphql'
];
3 Likes