Remixd : Accédez à votre système de fichiers local

version npm

Pour donner à l’IDE Remix (l’application web) l’accès à un dossier sur votre ordinateur, vous devez utiliser Remixd - le plugin ainsi que remixd - le module cli/npm.

Le plugin Remixd peut être activé à partir du gestionnaire de plugins ou de l’explorateur de fichiers** - voir l’image ci-dessous. L’option connect to localhost - activera le plugin Remixd.

Une fois que vous cliquez sur connect to localhost ou que vous activez Remixd depuis le Plugin Manager, une fenêtre modale s’affiche :

Le plugin Remixd est un plugin websocket et il n’a pas d’interface utilisateur autre que cette boîte de dialogue modale - vous ne verrez donc pas d’icône Remixd dans le panneau d’icônes.

Avant de cliquer sur Connect, vous devez installer le [module NPM remixd] (https://www.npmjs.com/package/@remix-project/remixd) et lancer la commande remixd.

Le code de remixd est here .

Installation remixd

remixd est un module NPM et peut être installé globalement en utilisant la commande suivante : npm install -g @remix-project/remixd

Vous pouvez également l’installer dans le répertoire de votre choix en supprimant le drapeau -g : npm install @remix-project/remixd

NOTE: Lorsque le module NPM remixd est installé, il installe également Slither, solc-select et met solc à la dernière version, c’est-à-dire 0.8.15 actuellement.

ALSO NOTE: Python3.6+ (pip3) needs to already be installed on the System. (This packaging of Slither with the remixd module is supported since Remixd v0.6.3). In case of any discrepancy, Slither can also be installed along with other dependencies using command remixd -i slither

Trouvez votre version de remixd

La commande : remixd -v ou remixd --version vous renverra votre numéro de version.

**Si cette commande ne fonctionne pas, c’est que votre version est obsolète.

Mise à jour vers la dernière version remixée

Comme remixd crée un pont entre le navigateur et votre système de fichiers local, il est important que vous disposiez de la dernière version du script.

Pour les utilisateurs qui ont installé la version de remixd à partir de la TRES vieille adresse NPM ou pour les utilisateurs qui ne savent pas à partir de quelle adresse NPM ils l’ont installée, exécutez ces 2 étapes :

  1. désinstallez l’ancien : npm uninstall -g remixd

  2. installez le nouveau : npm install -g @remix-project/remixd

Pour la plupart des utilisateurs qui savent qu’ils ont une version de remixd installée depuis @remix-project/remixd, exécutez simplement :

npm install -g @remix-project/remixd

commande remixd

La commande remixd sans options utilise le répertoire courant du terminal comme répertoire partagé et le domaine Remix partagé sera https://remix.ethereum.org, https://remix-alpha.ethereum.org, ou https://remix-beta.ethereum.org

La commande remixd est la suivante :
remixd

Si vous utilisez Remix depuis localhost ou si vous n’exécutez pas la commande depuis votre répertoire de travail, vous devrez utiliser la commande avec des drapeaux.

options remixd

Usage: remixd [options]

Establish a two-way websocket connection between the local computer and Remix IDE for a folder

Options:
  -v, --version               output the version number
  -u, --remix-ide  <url>      URL of remix instance allowed to connect
  -s, --shared-folder <path>  Folder to share with Remix IDE (Default: CWD)
  -i, --install <name>        Module name to install locally (Supported: ["slither"])
  -r, --read-only             Treat shared folder as read-only (experimental)
  -h, --help                  output usage information

Example:

    remixd -s ./shared_project -u http://localhost:8080

NOTE : remixd -i slither peut être utilisé pour installer Slither avec ses dépendances.

HTTP vs HTTPS dans la commande remixd

Si votre navigateur est sur https://remix.ethereum.org (secure http), utilisez https dans la commande :
remixd -s <absolute-path-to-the-shared-folder> --remix-ide https://remix.ethereum.org

Ou si vous utilisez http dans le navigateur, utilisez http dans la commande remixd.

Autorisation de lecture/écriture et mode lecture seule

Le dossier est partagé en utilisant une connexion websocket entre Remix IDE et remixd.

Assurez-vous que l’utilisateur qui exécute remixd a les droits de lecture/écriture sur le dossier.

Alternativement, il y a une option pour exécuter remixd en mode lecture seule, utilisez le drapeau --read-only.

Utilisation des ports

remixd fonctionne en établissant des connexions websocket avec Remix IDE sur différents ports. Les ports sont définis en fonction d’objectifs spécifiques. Les détails de l’utilisation des ports sont les suivants :

  • 65520 : Pour l’auditeur websocket remixd, partager le système de fichiers local avec Remix IDE. Le dossier partagé sera chargé dans l’espace de travail File Explorers de Remix IDE nommé localhost.

  • 65522 : Pour le websocket listener hardhat, activer la compilation Hardhat en utilisant le plugin Solidity Compiler de Remix IDE, si le dossier partagé est un projet Hardhat.

  • 65523 : Pour l’écouteur websocket slither, activer l’analyse Slither en utilisant le plugin Solidity Static Analysis de l’IDE Remix.

  • 65524 : Pour l’écouteur websocket truffle, activer la compilation Truffle en utilisant le plugin Solidity Compiler de Remix IDE, si le dossier partagé est un projet Truffle.

Note: Assurez-vous que votre système est suffisamment sécurisé et que ces ports ne sont pas ouverts ou transférés.

Attention !

  • remixd fournit un accès complet en lecture et en écriture au dossier donné pour toute application qui peut accéder au TCP port 65520 sur votre hôte local.

  • Pour minimiser le risque, Remixd peut Seulement faire le pont entre votre système de fichiers et les URLs de l’IDE Remix - y compris :

  https://remix.ethereum.org
  https://remix-alpha.ethereum.org
  https://remix-beta.ethereum.org
  package://a7df6d3c223593f3550b35e90d7b0b1f.mod
  package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod
  https://ipfsgw.komputing.org

(les urls package:// dans la liste ci-dessus sont pour le remix desktop)

Cliquez sur Connecter dans la fenêtre modale.

En cliquant sur le bouton Connect de la fenêtre modale de Remixd (voir l’image ci-dessus), vous tenterez de démarrer une session dans laquelle votre navigateur pourra accéder au dossier spécifié sur le système de fichiers de votre ordinateur.

Si remixd ne tourne pas en arrière-plan, une autre fenêtre modale s’ouvrira et dira :

Cannot connect to the remixd daemon. 
Please make sure you have the remixd running in the background.

Si vous n’obtenez pas la deuxième fenêtre modale, votre connexion au démon remixd est réussie. Le dossier partagé sera visible dans l’espace de travail de l’explorateur de fichiers sous localhost.

Création et suppression de dossiers et de fichiers

En cliquant sur l’icône nouveau dossier ou nouveau fichier sous localhost, vous créez un nouveau fichier ou dossier dans le dossier partagé. De même, si vous cliquez avec le bouton droit de la souris sur un fichier ou un dossier, vous pouvez renommer ou supprimer le fichier.

Clôture d’une session remixée

Dans le terminal où remixd s’exécute, taper ctrl-c fermera la session. Remix IDE affichera alors une fenêtre modale indiquant que remixd a cessé de fonctionner.