From 2b72456fd1a9064aef81b2986ed24a21e8305cd5 Mon Sep 17 00:00:00 2001 From: Lucas Leclerc Date: Sun, 22 Sep 2024 10:01:57 +0200 Subject: [PATCH 1/5] feat(p2p/krypto-tour): add workshop --- p2p/3.foundry/SETUP.md | 4 +- p2p/krypto-tour/HelloWorld.sol | 8 ++ p2p/krypto-tour/README.md | 148 +++++++++++++++++++++++++++++++++ 3 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 p2p/krypto-tour/HelloWorld.sol create mode 100644 p2p/krypto-tour/README.md diff --git a/p2p/3.foundry/SETUP.md b/p2p/3.foundry/SETUP.md index d59c74ff..be182704 100644 --- a/p2p/3.foundry/SETUP.md +++ b/p2p/3.foundry/SETUP.md @@ -2,7 +2,7 @@ ## Install foundry -Please follow the instructions given [here](https://github.com/foundry-rs/foundry#installation). +Please follow the instructions given [here](https://book.getfoundry.sh/getting-started/installation). After the installation, run the following command to ensure it has been properly installed on your computer: @@ -17,7 +17,7 @@ It should print your current version. Now we will initialize the project: ```shell -forge init workshop --no-commit +forge init workshop ``` ## Back to the workshop diff --git a/p2p/krypto-tour/HelloWorld.sol b/p2p/krypto-tour/HelloWorld.sol new file mode 100644 index 00000000..eaab744a --- /dev/null +++ b/p2p/krypto-tour/HelloWorld.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.25; + +contract HelloWorld { + function hello() public pure returns(string memory) { + return "Hello world"; + } +} diff --git a/p2p/krypto-tour/README.md b/p2p/krypto-tour/README.md new file mode 100644 index 00000000..6360b91e --- /dev/null +++ b/p2p/krypto-tour/README.md @@ -0,0 +1,148 @@ +# Workshop - Discover Blockchain Development and Tools + +✔ 📖 **Discover Foundry** +✔ 🛠️ **Deploy a Smart-Contract on a Local Blockchain** +✔ 🚀 **Call this Smart-Contract** + +## Introduction + +This workshop introduces blockchain development and the tools you'll need to deploy and interact with smart contracts. We’ll guide you through deploying your first smart contract using Foundry on a local blockchain, and calling it to see how it works. + +### What is a Smart Contract? +A smart contract is a self-executing contract with the terms directly written into code. Once deployed on a blockchain, it can be interacted with like any other piece of software, but it's decentralized, meaning no one can alter it once it's live. + +## Prerequisites + +This workshop requires **no prior knowledge**. All you need is a computer and an internet connection. + +## Step 1 - Install VSCode + +VSCode is a text editor that developers use to write code. Think of it like a digital notebook where you'll be writing your smart contract. + +1. Go to the [official website](https://code.visualstudio.com/download) and download the version of VSCode for your operating system. +2. Follow the installation instructions on the site, and once installed, open it up. You'll use it to write your smart contract later. + +## Step 2 - Install Foundry + +Foundry is a set of tools that helps you develop and test smart contracts quickly. + +1. Follow the instructions given [here](https://book.getfoundry.sh/getting-started/installation) to install Foundry. The guide walks you through installing it on your system. +2. After installation, run the following command in your terminal to make sure it's installed correctly: + To open a terminal in vscode, click on the **Terminal** tab in the top menu and then click on **New Terminal** + ```shell + forge --version + ``` + If everything went well, you should see the current version of Foundry printed out. + + +## Step 3 - Initialize Your Project + +### What is Initialization? +Initialization sets up the basic structure of your project. + +1. In your terminal, navigate to the folder where you want to create your project. Then, run the following command to initialize the project: + + ```shell + forge init workshop + ``` + + This will create a new project folder called `workshop` with some starter files. + +### Delete Unnecessary Files +Some of the files that come with the starter project aren’t needed for this workshop. + +1. Delete the following folders and file: + - `test` folder + - `script` folder + - `Counter.sol` file in the `src` folder + +2. Now, add the file `HelloWorld.sol` in the `src` folder. This is the smart contract you'll be deploying. + - The smart contract have only one function `hello()` that returns the message `Hello world`. + +## Step 4 - Start the Local Blockchain + +### What is a Local Blockchain? +A local blockchain is like a blockchain simulator running on your computer. It allows you to test your smart contracts without using real money or interacting with a public blockchain. + +1. To start your local blockchain, run the following command in the terminal: + + ```shell + anvil + ``` + + Anvil will start up a local blockchain and give you a list of pre-created wallets. Each wallet has some fake cryptocurrency in it so that you can deploy smart contracts without needing real money. + +2. **Copy one of the private keys** from the list. You will use this key to deploy your smart contract in the next step. + +## Step 5 - Deploy the Smart Contract + +### What Does Deploying Mean? +When you deploy a smart contract, you're publishing it on a blockchain so it can be used. Once deployed, it's live and ready for interaction. + +1. To deploy your smart contract, run the following command: + + ```shell + forge create --private-key PRIVATE_KEY src/HelloWorld.sol:HelloWorld + ``` + + Replace `PRIVATE_KEY` with the private key you copied earlier from the local blockchain. + +2. After running the command, you'll see some information about the deployment. Look for the part that says `deployed to`, followed by an address. **Copy this address**, as it is where your smart contract is located on the blockchain, and you'll need it in the next step. + +## Step 6 - Call the Smart Contract + +### What Does Calling a Smart Contract Mean? +Calling a smart contract means interacting with it by executing one of its functions. For this workshop, you’ll call the `hello()` function of the smart contract, which will return a message. + +1. Run the following command to call the `hello()` function: + + ```shell + cast call CONTRACT_ADDRESS "hello()" | tr -d '\n' | cast to-ascii + ``` + + Replace `CONTRACT_ADDRESS` with the address of the smart contract that you copied earlier. + +2. You should see the output `Hello world`. + + Here's what each part of the command does: + - `cast call` is used to call a function in the smart contract. + - The first argument is the address of the smart contract. + - The second argument is the function to call (`hello()` in this case). + - `tr -d '\n'` removes the newline character at the end of the output. + - `cast to-ascii` converts the output from hexadecimal to readable text (ASCII). + +## Conclusion + +Congratulations! You've just deployed and called a smart contract on a local blockchain. You've taken your first steps into blockchain development, and I hope this workshop has given you a taste of how powerful this technology can be. + +Feel free to explore more, modify the smart contract, and dive deeper into Foundry and blockchain! + + +## Authors 👋 + +| [
Lucas LECLERC](https://github.com/Intermarch3) | +| :--------------------------------------------------------------------------------------------------------------------: | + +

Organization

+
+

+ + LinkedIn logo + + + Instagram logo + + + Twitter logo + + + Discord logo + +

+

+ + Website logo + +

+ +> 🚀 Don't hesitate to follow us on our different platforms, and give a star 🌟 to PoC's repositories. From 8d1616e6e1bd1d77038c6adfee18e01cdaea4f8c Mon Sep 17 00:00:00 2001 From: Lucas Leclerc Date: Sat, 28 Sep 2024 21:42:20 +0200 Subject: [PATCH 2/5] refactor(p2p/krypto-tour): translate to french and add some explainations --- p2p/krypto-tour/README.md | 142 ++++++++++++++++++++------------------ 1 file changed, 74 insertions(+), 68 deletions(-) diff --git a/p2p/krypto-tour/README.md b/p2p/krypto-tour/README.md index 6360b91e..1460f246 100644 --- a/p2p/krypto-tour/README.md +++ b/p2p/krypto-tour/README.md @@ -1,148 +1,154 @@ -# Workshop - Discover Blockchain Development and Tools +# Workshop - Découverte du Développement Blockchain et des Outils -✔ 📖 **Discover Foundry** -✔ 🛠️ **Deploy a Smart-Contract on a Local Blockchain** -✔ 🚀 **Call this Smart-Contract** +✔ 📖 **Découvrez Foundry** +✔ 🛠️ **Déployez un Smart Contract sur une Blockchain Locale** +✔ 🚀 **Appelez ce Smart Contract** ## Introduction -This workshop introduces blockchain development and the tools you'll need to deploy and interact with smart contracts. We’ll guide you through deploying your first smart contract using Foundry on a local blockchain, and calling it to see how it works. +Cet atelier présente le développement blockchain et les outils nécessaires pour déployer et interagir avec des smart contracts. Nous vous guiderons à travers le déploiement de votre premier smart contract en utilisant Foundry sur une blockchain locale, et nous l’appellerons pour voir comment il fonctionne. -### What is a Smart Contract? -A smart contract is a self-executing contract with the terms directly written into code. Once deployed on a blockchain, it can be interacted with like any other piece of software, but it's decentralized, meaning no one can alter it once it's live. +### Qu'est-ce qu'un Smart Contract ? +Un smart contract est un contrat auto-exécutable avec des actions directement écrits dans le code. Une fois déployé sur une blockchain, il peut être interagi comme n'importe quel autre logiciel, mais il est décentralisé, ce qui signifie que personne ne peut le modifier une fois qu'il est en ligne. -## Prerequisites +## Prérequis -This workshop requires **no prior knowledge**. All you need is a computer and an internet connection. +Cet atelier ne nécessite **aucune connaissance préalable**. Tout ce dont vous avez besoin est un ordinateur et une connexion Internet. -## Step 1 - Install VSCode +## Étape 1 - Installer VSCode -VSCode is a text editor that developers use to write code. Think of it like a digital notebook where you'll be writing your smart contract. +VSCode est un éditeur de texte que les développeurs utilisent pour écrire du code. Pensez-y comme `Word` de Microsoft office mais spécialisé pour écrire du code. C'est ici où vous allez écrire votre smart contract. -1. Go to the [official website](https://code.visualstudio.com/download) and download the version of VSCode for your operating system. -2. Follow the installation instructions on the site, and once installed, open it up. You'll use it to write your smart contract later. +1. Allez sur le [site officiel](https://code.visualstudio.com/download) et téléchargez la version de VSCode pour votre système d'exploitation. +2. Suivez les instructions d'installation sur le site, et une fois installé, ouvrez-le. Vous l'utiliserez pour écrire votre smart contract plus tard. -## Step 2 - Install Foundry +## Étape 2 - Installer Foundry -Foundry is a set of tools that helps you develop and test smart contracts quickly. +Foundry est un ensemble d'outils qui vous aide à développer et tester des smart contracts rapidement. -1. Follow the instructions given [here](https://book.getfoundry.sh/getting-started/installation) to install Foundry. The guide walks you through installing it on your system. -2. After installation, run the following command in your terminal to make sure it's installed correctly: - To open a terminal in vscode, click on the **Terminal** tab in the top menu and then click on **New Terminal** +1. Suivez les instructions données [ici](https://book.getfoundry.sh/getting-started/installation) pour installer Foundry. Le guide vous accompagne dans son installation sur votre système. +2. Après l'installation, exécutez la commande suivante dans votre terminal pour vous assurer qu'il est installé correctement : + Pour ouvrir un terminal dans VSCode, cliquez sur l'onglet **Terminal** dans le menu supérieur, puis cliquez sur **Nouveau Terminal** ```shell forge --version ``` - If everything went well, you should see the current version of Foundry printed out. + Si tout s'est bien passé, vous devriez voir la version actuelle de Foundry affichée. +## Étape 3 - Initialiser Votre Projet -## Step 3 - Initialize Your Project +### Qu'est-ce que l'Initialisation ? +L'initialisation configure la structure de base de votre projet. -### What is Initialization? -Initialization sets up the basic structure of your project. - -1. In your terminal, navigate to the folder where you want to create your project. Then, run the following command to initialize the project: +1. Dans votre terminal, naviguez vers le dossier où vous souhaitez créer votre projet. Ensuite, exécutez la commande suivante pour initialiser le projet : ```shell forge init workshop ``` - This will create a new project folder called `workshop` with some starter files. + Cela créera un nouveau dossier de projet appelé `workshop` avec quelques fichiers de démarrage. + +### Supprimer les Fichiers Inutiles +Certains fichiers fournis avec le projet de démarrage ne sont pas nécessaires pour cet atelier. + +1. Supprimez les dossiers et fichiers suivants : + - Dossier `test` + - Dossier `script` + - Fichier `Counter.sol` dans le dossier `src` -### Delete Unnecessary Files -Some of the files that come with the starter project aren’t needed for this workshop. +2. Maintenant, ajoutez le fichier `HelloWorld.sol` dans le dossier `src`. C'est le smart contract que vous allez déployer. + - Le smart contract n'a qu'une seule fonction `hello()` qui renvoie le message `Hello world`. -1. Delete the following folders and file: - - `test` folder - - `script` folder - - `Counter.sol` file in the `src` folder +> **Pourquoi un "Hello World" ?** +> Le programme "Hello World" est souvent le premier exemple de code que les développeurs écrivent lorsqu'ils apprennent un nouveau langage de programmation. Cette tradition remonte à 1972, lorsqu'il a été utilisé dans le livre "The C Programming Language" pour illustrer la syntaxe de base et l'affichage à l'écran. -2. Now, add the file `HelloWorld.sol` in the `src` folder. This is the smart contract you'll be deploying. - - The smart contract have only one function `hello()` that returns the message `Hello world`. -## Step 4 - Start the Local Blockchain +## Étape 4 - Démarrer la Blockchain Locale -### What is a Local Blockchain? -A local blockchain is like a blockchain simulator running on your computer. It allows you to test your smart contracts without using real money or interacting with a public blockchain. +### Qu'est-ce qu'une Blockchain Locale ? -1. To start your local blockchain, run the following command in the terminal: +Une blockchain locale est comme un simulateur de blockchain fonctionnant sur votre ordinateur. Elle vous permet de tester vos smart contracts sans utiliser de l'argent réel ou interagir avec une blockchain publique. + +1. Pour démarrer votre blockchain locale, exécutez la commande suivante dans le terminal : ```shell anvil ``` - Anvil will start up a local blockchain and give you a list of pre-created wallets. Each wallet has some fake cryptocurrency in it so that you can deploy smart contracts without needing real money. + Anvil démarrera une blockchain locale et vous fournira une liste de portefeuilles pré-créés. Chaque portefeuille contient une crypto-monnaie fictive afin que vous puissiez déployer des smart contracts sans avoir besoin d'argent réel. -2. **Copy one of the private keys** from the list. You will use this key to deploy your smart contract in the next step. +2. **Copiez l'une des clés privées** de la liste. Vous utiliserez cette clé pour déployer votre smart contract à l'étape suivante. + exemple: `0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80` + > **Qu'est-ce qu'une clé privée ?** + > Une clé privée est une chaîne de caractères qui permet d'accéder à un portefeuille de crypto-monnaie. C'est comme un mot de passe, mais plus long et plus sécurisé. Ne partagez jamais votre clé privée avec quelqu'un d'autre, car cela leur donnerait accès à votre portefeuille. -## Step 5 - Deploy the Smart Contract +## Étape 5 - Déployer le Smart Contract -### What Does Deploying Mean? -When you deploy a smart contract, you're publishing it on a blockchain so it can be used. Once deployed, it's live and ready for interaction. +### Que signifie Déployer ? +Lorsque vous déployez un smart contract, vous le publiez sur une blockchain afin qu'il puisse être utilisé. Une fois déployé, il est en ligne et prêt à être utilisé. -1. To deploy your smart contract, run the following command: +1. Pour déployer votre smart contract, exécutez la commande suivante : ```shell forge create --private-key PRIVATE_KEY src/HelloWorld.sol:HelloWorld ``` - Replace `PRIVATE_KEY` with the private key you copied earlier from the local blockchain. + Remplacez `PRIVATE_KEY` par la clé privée que vous avez copiée plus tôt depuis la blockchain locale. -2. After running the command, you'll see some information about the deployment. Look for the part that says `deployed to`, followed by an address. **Copy this address**, as it is where your smart contract is located on the blockchain, and you'll need it in the next step. +2. Après avoir exécuté la commande, vous verrez quelques informations sur le déploiement. Recherchez la partie qui dit `deployed to`, suivie d'une adresse. **Copiez cette adresse**, car c'est là que se trouve votre smart contract sur la blockchain, et vous en aurez besoin à l'étape suivante. -## Step 6 - Call the Smart Contract +## Étape 6 - Appeler le Smart Contract -### What Does Calling a Smart Contract Mean? -Calling a smart contract means interacting with it by executing one of its functions. For this workshop, you’ll call the `hello()` function of the smart contract, which will return a message. +### Que signifie Appeler un Smart Contract ? +Appeler un smart contract signifie interagir avec lui en exécutant l'une de ses fonctions. Pour cet atelier, vous allez appeler la fonction `hello()` du smart contract, qui renverra un message. -1. Run the following command to call the `hello()` function: +1. Exécutez la commande suivante pour appeler la fonction `hello()` : ```shell cast call CONTRACT_ADDRESS "hello()" | tr -d '\n' | cast to-ascii ``` - Replace `CONTRACT_ADDRESS` with the address of the smart contract that you copied earlier. + Remplacez `CONTRACT_ADDRESS` par l'adresse du smart contract que vous avez copiée précédemment. -2. You should see the output `Hello world`. +2. Vous devriez voir la sortie `Hello world`. - Here's what each part of the command does: - - `cast call` is used to call a function in the smart contract. - - The first argument is the address of the smart contract. - - The second argument is the function to call (`hello()` in this case). - - `tr -d '\n'` removes the newline character at the end of the output. - - `cast to-ascii` converts the output from hexadecimal to readable text (ASCII). + Voici ce que fait chaque partie de la commande : + - `cast call` est utilisé pour appeler une fonction dans le smart contract. + - Le premier argument est l'adresse du smart contract. + - Le deuxième argument est la fonction à appeler (`hello()` dans ce cas). + - `tr -d '\n'` supprime le caractère de nouvelle ligne à la fin de la sortie. + - `cast to-ascii` convertit la sortie de l'hexadécimal en texte lisible (ASCII). ## Conclusion -Congratulations! You've just deployed and called a smart contract on a local blockchain. You've taken your first steps into blockchain development, and I hope this workshop has given you a taste of how powerful this technology can be. - -Feel free to explore more, modify the smart contract, and dive deeper into Foundry and blockchain! +Félicitations ! Vous avez déployé et appelé un smart contract sur une blockchain locale. Vous avez fait vos premiers pas dans le développement blockchain, et j'espère que cet atelier vous a donné un aperçu de la puissance de cette technologie. +N'hésitez pas à explorer davantage, à modifier le smart contract et à plonger plus profondément dans Foundry et la blockchain ! -## Authors 👋 +## Auteurs 👋 | [
Lucas LECLERC](https://github.com/Intermarch3) | | :--------------------------------------------------------------------------------------------------------------------: | -

Organization

+

Organisation


- LinkedIn logo + Logo LinkedIn - Instagram logo + Logo Instagram - Twitter logo + Logo Twitter - Discord logo + Logo Discord

- Website logo + Logo Site Web

-> 🚀 Don't hesitate to follow us on our different platforms, and give a star 🌟 to PoC's repositories. +> 🚀 N'hésitez pas à nous suivre sur nos différentes plateformes et à donner une étoile 🌟 aux dépôts de PoC. \ No newline at end of file From 31e4de9fc36e86b896dfb91d8b65d0aaaffd09a1 Mon Sep 17 00:00:00 2001 From: Lucas Leclerc Date: Mon, 14 Oct 2024 16:10:27 +0200 Subject: [PATCH 3/5] feat(p2p/krytpo-tour): foundry setup and more --- p2p/krypto-tour/README.md | 25 ++------------ p2p/krypto-tour/SETUP.md | 71 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 23 deletions(-) create mode 100644 p2p/krypto-tour/SETUP.md diff --git a/p2p/krypto-tour/README.md b/p2p/krypto-tour/README.md index 1460f246..0f446bac 100644 --- a/p2p/krypto-tour/README.md +++ b/p2p/krypto-tour/README.md @@ -22,30 +22,9 @@ VSCode est un éditeur de texte que les développeurs utilisent pour écrire du 1. Allez sur le [site officiel](https://code.visualstudio.com/download) et téléchargez la version de VSCode pour votre système d'exploitation. 2. Suivez les instructions d'installation sur le site, et une fois installé, ouvrez-le. Vous l'utiliserez pour écrire votre smart contract plus tard. -## Étape 2 - Installer Foundry +## Étape 2 - Installer Foundry et initialiser un projet -Foundry est un ensemble d'outils qui vous aide à développer et tester des smart contracts rapidement. - -1. Suivez les instructions données [ici](https://book.getfoundry.sh/getting-started/installation) pour installer Foundry. Le guide vous accompagne dans son installation sur votre système. -2. Après l'installation, exécutez la commande suivante dans votre terminal pour vous assurer qu'il est installé correctement : - Pour ouvrir un terminal dans VSCode, cliquez sur l'onglet **Terminal** dans le menu supérieur, puis cliquez sur **Nouveau Terminal** - ```shell - forge --version - ``` - Si tout s'est bien passé, vous devriez voir la version actuelle de Foundry affichée. - -## Étape 3 - Initialiser Votre Projet - -### Qu'est-ce que l'Initialisation ? -L'initialisation configure la structure de base de votre projet. - -1. Dans votre terminal, naviguez vers le dossier où vous souhaitez créer votre projet. Ensuite, exécutez la commande suivante pour initialiser le projet : - - ```shell - forge init workshop - ``` - - Cela créera un nouveau dossier de projet appelé `workshop` avec quelques fichiers de démarrage. +Toutes les étapes d'installation de Foundry sont dans le [fichier SETUP.md](./SETUP.md). Suivez les instructions pour installer Foundry sur votre ordinateur. ### Supprimer les Fichiers Inutiles Certains fichiers fournis avec le projet de démarrage ne sont pas nécessaires pour cet atelier. diff --git a/p2p/krypto-tour/SETUP.md b/p2p/krypto-tour/SETUP.md new file mode 100644 index 00000000..02d52cbf --- /dev/null +++ b/p2p/krypto-tour/SETUP.md @@ -0,0 +1,71 @@ +# Setup - Foundry + +Foundry est une chaîne d'outils de développement de smarts contracts. Il gère vos dépendances, compile votre projet, exécute des tests, déploie et vous permet d'interagir avec la blockchain à partir de la ligne de commande et via des scripts Solidity. + +## Installer Foundry + +**Linux et macos** +- Ouvrez votre terminal et tapez + +```sh +curl -L https://foundry.paradigm.xyz | bash +``` + +**Windows** +- Téléchargez [Git pour windows](https://git-scm.com/downloads/win) puis lancer le programme Git Bash. +- Tapez + +```sh +curl -L https://foundry.paradigm.xyz | bash +``` + +Cela va télécharger foundryup. + +- Ensuite, vous pouvez installer foundry en tapant `foundryup` +- Si tout s'est bien passé vous devriez être capable d'utiliser `forge`, `anvil`, `chisel` et `cast` +- Si vous êtes sur macos vous devez installer `libusb` en tapant + +```sh +brew install libusb +``` + +Après l'installation, lancer cette commande pour vérifier que tout est bien installé sur votre ordinateur: + +```sh +forge --version +``` + +Cela devrait afficher la version actuelle de forge. + +Si vous avez des soucis d'installation n'hésitez pas à demander de l'aide aux organisateur de ce workshop. + +## Créer un projet foundry + +Une fois que l'installation est faite, vous pouvez créer un nouveau projet en tapant +L'initialisation configure la structure de base de votre projet. + +```sh +forge init krypto-tour +``` + +Cela devrait créer un nouveau dossier contenant un tout nouveau projet foundry avec une structure et des fichiers de base. + +La première chose à faire est d'écrire la version de solidity dans le fichier `foundry.toml` qui est le fichier de configuration de votre projet. + +Vous pouvez faire cela en ajoutant dans la partie `[profile.default]`: + +```toml +solc_version = "0.8.20" +``` + +Votre fichier devrait ressembler à ça + +```toml +[profile.default] +src = "src" +out = "out" +libs = ["lib"] +solc_version = "0.8.20" +``` + +Tout est bon, vous pouvez maintenant attaquer le workshop ! \ No newline at end of file From 6a519606ef4072f16de56cf4a534fca4dfacb6eb Mon Sep 17 00:00:00 2001 From: Lucas Leclerc Date: Mon, 14 Oct 2024 16:16:00 +0200 Subject: [PATCH 4/5] style(p2p/krypto-tour): fix lint errors --- p2p/krypto-tour/README.md | 4 ++-- p2p/krypto-tour/SETUP.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/p2p/krypto-tour/README.md b/p2p/krypto-tour/README.md index 0f446bac..4cc28df1 100644 --- a/p2p/krypto-tour/README.md +++ b/p2p/krypto-tour/README.md @@ -88,7 +88,7 @@ Appeler un smart contract signifie interagir avec lui en exécutant l'une de ses Remplacez `CONTRACT_ADDRESS` par l'adresse du smart contract que vous avez copiée précédemment. -2. Vous devriez voir la sortie `Hello world`. +2. Vous devriez voir la sortie `Hello world`. Voici ce que fait chaque partie de la commande : - `cast call` est utilisé pour appeler une fonction dans le smart contract. @@ -130,4 +130,4 @@ N'hésitez pas à explorer davantage, à modifier le smart contract et à plonge

-> 🚀 N'hésitez pas à nous suivre sur nos différentes plateformes et à donner une étoile 🌟 aux dépôts de PoC. \ No newline at end of file +> 🚀 N'hésitez pas à nous suivre sur nos différentes plateformes et à donner une étoile 🌟 aux dépôts de PoC. diff --git a/p2p/krypto-tour/SETUP.md b/p2p/krypto-tour/SETUP.md index 02d52cbf..9be14960 100644 --- a/p2p/krypto-tour/SETUP.md +++ b/p2p/krypto-tour/SETUP.md @@ -4,14 +4,14 @@ Foundry est une chaîne d'outils de développement de smarts contracts. Il gère ## Installer Foundry -**Linux et macos** +### **Linux et macos** - Ouvrez votre terminal et tapez ```sh curl -L https://foundry.paradigm.xyz | bash ``` -**Windows** +### **Windows** - Téléchargez [Git pour windows](https://git-scm.com/downloads/win) puis lancer le programme Git Bash. - Tapez @@ -68,4 +68,4 @@ libs = ["lib"] solc_version = "0.8.20" ``` -Tout est bon, vous pouvez maintenant attaquer le workshop ! \ No newline at end of file +Tout est bon, vous pouvez maintenant attaquer le workshop ! From 561d42ae261e429d68c1803e1c934126e5978d16 Mon Sep 17 00:00:00 2001 From: Lucas Leclerc Date: Mon, 14 Oct 2024 18:20:02 +0200 Subject: [PATCH 5/5] fix(p2p/krypto-tour): add explanations and more --- p2p/krypto-tour/HelloWorld.sol | 2 +- p2p/krypto-tour/README.md | 12 ++++++++++++ p2p/krypto-tour/SETUP.md | 17 ++++++++++++----- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/p2p/krypto-tour/HelloWorld.sol b/p2p/krypto-tour/HelloWorld.sol index eaab744a..26e63bbb 100644 --- a/p2p/krypto-tour/HelloWorld.sol +++ b/p2p/krypto-tour/HelloWorld.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.25; +pragma solidity ^0.8.20; contract HelloWorld { function hello() public pure returns(string memory) { diff --git a/p2p/krypto-tour/README.md b/p2p/krypto-tour/README.md index 4cc28df1..9ce76a1b 100644 --- a/p2p/krypto-tour/README.md +++ b/p2p/krypto-tour/README.md @@ -22,6 +22,9 @@ VSCode est un éditeur de texte que les développeurs utilisent pour écrire du 1. Allez sur le [site officiel](https://code.visualstudio.com/download) et téléchargez la version de VSCode pour votre système d'exploitation. 2. Suivez les instructions d'installation sur le site, et une fois installé, ouvrez-le. Vous l'utiliserez pour écrire votre smart contract plus tard. +> **Petit conseil :** +> Activer l'auto save dans VSCode pour ne pas perdre votre travail et enregistrer les modifications automatiquement. Pour cela, allez dans `File` et cliquer sur `autosave`. + ## Étape 2 - Installer Foundry et initialiser un projet Toutes les étapes d'installation de Foundry sont dans le [fichier SETUP.md](./SETUP.md). Suivez les instructions pour installer Foundry sur votre ordinateur. @@ -60,11 +63,20 @@ Une blockchain locale est comme un simulateur de blockchain fonctionnant sur vot > **Qu'est-ce qu'une clé privée ?** > Une clé privée est une chaîne de caractères qui permet d'accéder à un portefeuille de crypto-monnaie. C'est comme un mot de passe, mais plus long et plus sécurisé. Ne partagez jamais votre clé privée avec quelqu'un d'autre, car cela leur donnerait accès à votre portefeuille. +> **Attention :** +> Ne fermez pas le terminal où vous avez démarré la blockchain locale. +> Pour taper les prochaines commandes, ouvrez un nouveau terminal. + ## Étape 5 - Déployer le Smart Contract ### Que signifie Déployer ? Lorsque vous déployez un smart contract, vous le publiez sur une blockchain afin qu'il puisse être utilisé. Une fois déployé, il est en ligne et prêt à être utilisé. +> **Attention :** +> Lancer les commandes dans le bon dossier, le dossier créer par Foundry (`krypto-tour`). +> Pour vous déplacer dans le bon dossier, utilisez la commande `cd krypto-tour`. +> Si vous avez des problèmes, n'hésitez pas à demander de l'aide. + 1. Pour déployer votre smart contract, exécutez la commande suivante : ```shell diff --git a/p2p/krypto-tour/SETUP.md b/p2p/krypto-tour/SETUP.md index 9be14960..dd32ae4e 100644 --- a/p2p/krypto-tour/SETUP.md +++ b/p2p/krypto-tour/SETUP.md @@ -13,6 +13,7 @@ curl -L https://foundry.paradigm.xyz | bash ### **Windows** - Téléchargez [Git pour windows](https://git-scm.com/downloads/win) puis lancer le programme Git Bash. + - Laisser les paramètre par défaut sauf pour `Default editor used by Git` ou vous pouvez choisir `Use Visual Studio Code as Git's default editor` - Tapez ```sh @@ -20,6 +21,7 @@ curl -L https://foundry.paradigm.xyz | bash ``` Cela va télécharger foundryup. +Maintenant redémarrer votre terminal. - Ensuite, vous pouvez installer foundry en tapant `foundryup` - Si tout s'est bien passé vous devriez être capable d'utiliser `forge`, `anvil`, `chisel` et `cast` @@ -41,18 +43,23 @@ Si vous avez des soucis d'installation n'hésitez pas à demander de l'aide aux ## Créer un projet foundry -Une fois que l'installation est faite, vous pouvez créer un nouveau projet en tapant -L'initialisation configure la structure de base de votre projet. +Créer un dossier de travail vide pour le workshop. +Ouvrez ce dossier dans VSCode avec `File > Open Folder`. +Ensuite, vous pouvez ouvrir un terminal dans VSCode en allant dans `Terminal > New Terminal`. +Si vous êtes sur Windows, faites la même chose mais ensuite créez un terminal Git Bash avec la flèche à côté du plus ([exemple](https://code.visualstudio.com/docs/terminal/basics#_terminal-shells)). + +L'initialisation configure la structure de base de votre projet. +Une fois que l'installation est faite, vous pouvez créer un nouveau projet en tapant la command ci dessous : ```sh -forge init krypto-tour +forge init krypto-tour --no-commit ``` Cela devrait créer un nouveau dossier contenant un tout nouveau projet foundry avec une structure et des fichiers de base. La première chose à faire est d'écrire la version de solidity dans le fichier `foundry.toml` qui est le fichier de configuration de votre projet. -Vous pouvez faire cela en ajoutant dans la partie `[profile.default]`: +Vous pouvez faire cela en ajoutant sous la ligne `[profile.default]` la ligne suivante: ```toml solc_version = "0.8.20" @@ -62,10 +69,10 @@ Votre fichier devrait ressembler à ça ```toml [profile.default] +solc_version = "0.8.20" src = "src" out = "out" libs = ["lib"] -solc_version = "0.8.20" ``` Tout est bon, vous pouvez maintenant attaquer le workshop !