Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: import translations for fr #12882

Merged
merged 3 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,10 @@ Vous pouvez accéder aux méthodes d'un contrat intelligent instancié pour lequ
```js
daiToken.methods.balanceOf(senderAddress).call(function (err, res) {
if (err) {
console.log("Une erreur s'est produite", err)
console.log("An error occurred", err)
return
}
console.log("Le solde est : ", res)
console.log("The balance is: ", res)
})
```

Expand All @@ -123,10 +123,10 @@ daiToken.methods
.transfer(receiverAddress, "100000000000000000000")
.send({ from: senderAddress }, function (err, res) {
if (err) {
console.log("Une erreur s'est produite", err)
console.log("An error occurred", err)
return
}
console.log("Hash de la transaction : " + res)
console.log("Hash of the transaction: " + res)
})
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ Dans cet article, nous allons décortiquer le [contrat ERC-721 de Ryuya Nakamura
## Le contrat {#contract}

```python
# @dev Implémentation de la norme de jeton non fongible ERC-721.
# @dev Implementation of ERC-721 non-fungible token standard.
# @author Ryuya Nakamura (@nrryuya)
# Modifié à partir de : https://github.com/vyperlang/vyper/blob/de74722bf2d8718cca46902be165f9fe0e3641dd/examples/tokens/ERC721.vy
# Modified from: https://github.com/vyperlang/vyper/blob/de74722bf2d8718cca46902be165f9fe0e3641dd/examples/tokens/ERC721.vy
```

Tout comme avec Python, les commentaires Vyper commencent par une empreinte numérique (`#`) et continuent jusqu'au bout de la ligne. Les commentaires qui comportent `@<keyword>` sont compris par [NatSpec](https://vyper.readthedocs.io/en/latest/natspec.html) afin de produire une documentation compréhensible pour l'être humain.
Expand All @@ -40,7 +40,7 @@ La première ligne importe l'interface, et la deuxième spécifie que nous l'imp
### L'interface ERC721Receiver {#receiver-interface}

```python
# Interface pour le contrat appelé par safeTransferFrom()
# Interface for the contract called by safeTransferFrom()
interface ERC721Receiver:
def onERC721Received(
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Si vous souhaitez consulter le code source complet :

## Création d'un contrat ERC-20 {#creating-an-erc-20-contract}

Avant de pouvoir ajouter la fonctionnalité de sécurité, nous avons besoin d'un contrat ERC-20. Dans cet article, nous utiliserons [l'assistant de contrats OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/wizard). Ouvrez-le dans un autre navigateur et suivez ces instructions :
Avant de pouvoir ajouter la fonctionnalité de sécurité, nous avons besoin d'un contrat ERC-20. Dans cet article, nous utiliserons [l'assistant de contrats OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/wizard). Ouvrez-le dans un autre navigateur et suivez ces instructions :

1. Sélectionnez **ERC20**.
2. Entrez ces paramètres :
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Pour interagir avec l'infrastructure de nœuds d'Alchemy, exécutez en NodeJS ou
```js
const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3(
"https://eth-mainnet.alchemyapi.io/v2/votre-clé-api"
"https://eth-mainnet.alchemyapi.io/v2/your-api-key"
)
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ mintNFT("ipfs://QmYueiuRNmL4MiA2GwtVMm6ZagknXnSpQnB3z2gWbz36hP")
Maintenant, exécutez `node scripts/mint-nft.js` pour déployer votre NFT. Après quelques secondes, vous devriez voir une réponse comme celle-ci dans votre terminal :

Le hachage de votre transaction est : 0x301791fdf492001fcd9d5e5b12f3aa1bbbea9a88ed24993a8ab2cdae2d06e1e8e8

Vérifiez le Mempool d'Alchemy pour voir l'état de votre transaction !

Ensuite, consultez votre [Alchemy mempool](https://dashboard.alchemyapi.io/mempool) pour voir l'état de votre transaction (en attente, minée ou rejetée par le réseau). Si votre transaction a été rejetée, il est également utile de vérifier [Sepolia Etherscan](https://sepolia.etherscan.io/) et rechercher votre hachage de transaction.
Expand All @@ -324,6 +324,6 @@ Ensuite, consultez votre [Alchemy mempool](https://dashboard.alchemyapi.io/mempo

Et voilà ! Vous avez maintenant déployé ET frappé un NFT sur la blockchain Ethereum. <Emoji text=":money_mouth_face:" size={1} />

En utilisant `mint-nft.js` vous pouvez frapper autant de NFT que vous (ou votre portefeuille) désirez ! Assurez-vous juste de passer une nouvelle URI de jeton décrivant les métadonnées du NFT (sinon, vous ne réaliserez qu'une multitude de métadonnées identiques avec différents identifiants).
En utilisant `mint-nft.js` vous pouvez frapper autant de NFT que vous (ou votre wallet crypto) désirez ! Assurez-vous juste de passer une nouvelle URI de jeton décrivant les métadonnées du NFT (sinon, vous ne réaliserez qu'une multitude de métadonnées identiques avec différents identifiants).

Sans doute, vous souhaiteriez pouvoir afficher votre NFT dans votre portefeuille — alors n’oubliez pas de consulter la [Partie 3 : Comment voir votre NFT dans votre portefeuille](/developers/tutorials/how-to-view-nft-in-metamask/) !
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ lang: fr
tags:
- "solidity"
- "contrats intelligents"
- "tests"
- "simulation"
- "test"
- "bouchonnage"
skill: intermediate
published: 2020-05-02
source: soliditydeveloper.com
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Ce tutoriel décrit comment visualiser un NFT existant sur MetaMask
author: "Sumi Mudgil"
tags:
- "ERC-721"
- "alchemy"
- "Alchemy"
- "Solidity"
skill: beginner
lang: fr
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ description: Ce tutoriel est la première partie de la série sur les NFT et vou
author: "Sumi Mudgil"
tags:
- "ERC-721"
- "alchemy"
- "solidity"
- "Alchemy"
- "Solidity"
- "contrats intelligents"
skill: beginner
lang: fr
Expand Down Expand Up @@ -87,7 +87,7 @@ La manière dont vous répondez à ces questions d'installation a peu d'importan
author:
license: (ISC)
About to write to /Users/thesuperb1/Desktop/my-nft/package.json:

{
"name": "my-nft",
"version": "1.0.0",
Expand Down Expand Up @@ -118,7 +118,7 @@ Dans notre dossier de projet, exécutez :

npx hardhat

Vous devriez maintenant voir un message de bienvenue ainsi qu'une option pour sélectionner ce que vous voulez faire. Sélectionnez : « create an empty hardhat.config.js » :
Vous devriez maintenant voir un message de bienvenue ainsi qu'une option pour séléctionner ce que vous voulez faire. Sélectionnez : « create an empty hardhat.config.js » :

888 888 888 888 888
888 888 888 888 888
Expand All @@ -128,7 +128,7 @@ Vous devriez maintenant voir un message de bienvenue ainsi qu'une option pour s
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888
👷 Bienvenue dans Hardhat v2.0.11 👷‍
👷 Welcome to Hardhat v2.0.11 👷‍
? Que voulez vous faire ? …
Create a sample project
❯ Create an empty hardhat.config.js
Expand All @@ -138,7 +138,7 @@ Cela va générer un fichier 'hardhar.config.js' dans lequel nous allons spécif

## Étape 9 : Ajouter les dossiers du projet {#add-project-folders}

Pour garder notre projet organisé, nous allons créer deux nouveaux dossiers. Naviguez vers le répertoire racine de votre projet dans votre invite de commande en ligne et tapez :
Pour garder notre projet organisé, nous allons créer deux nouveaux dossiers. Naviguez vers le répertoire racine de votre projet dans votre ligne de commande et tapez :

mkdir contracts
mkdir scripts
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
title: Démarrer le développement de votre interface dApp avec create-eth-app
description: Aperçu de l'utilisation de create-eth-app et de ses fonctionnalités
author: "Markus Waas"
tags:
- "create-eth-app"
- "frontend"
- "javascript"
- "ethers.js"
- "the graph"
- "DeFi"
skill: beginner
lang: fr
published: 2020-04-27
source: soliditydeveloper.com
sourceUrl: https://soliditydeveloper.com/create-eth-app
---

La dernière fois nous nous sommes intéressés à [Solidity](https://soliditydeveloper.com/solidity-overview-2020) et avons mentionné [create-eth-app](https://github.com/PaulRBerg/create-eth-app). Vous allez maintenant découvrir comment l'utiliser, quelles fonctionnalités y sont intégrées et comment l'étendre encore. Initiée par Paul Razvan Berg, fondateur de [Sablier](http://sablier.com/), cette application livrée avec plusieurs intégrations facultatives au choix va vous permettre de débuter le développement de votre interface.

## Installation {#installation}

L'installation nécessite au minimum Yarn 0.25 (`npm install yarn --global`). L'installation est aussi simple que l'exécution :

```bash
yarn create eth-app my-eth-app
cd my-eth-app
yarn react-app:start
```

Elle s'appuie sur [create-react-app](https://github.com/facebook/create-react-app). Pour voir votre application, ouvrez `http://localhost:3000/`. Lorsque vous êtes prêt à déployer en production, créez un paquet minifié avec le constructeur yarn. Un moyen simple de l'héberger est [Netlify](https://www.netlify.com/). Vous pouvez créer un dépôt GitHub, l'ajouter à Netlify, configurer la commande de construction et le tour est joué ! Votre application sera hébergée et utilisable par tout le monde. Et tout ceci gratuitement.

## Fonctionnalités {#features}

### React & create-react-app {#react--create-react-app}

Premièrement, le coeur de l'application : React et toutes les fonctionnalités additionnelles livrées avec _create-react-app_. Utiliser cette seule application est une excellente option si vous ne souhaitez pas intégrer Ethereum. [React](https://reactjs.org/) rend la construction d'interfaces utilisateur interactives très facile. La prise en main n'est peut-être pas aussi facile qu'avec [Vue](https://vuejs.org/), mais l'application est encore largement utilisée, possède plus de fonctionnalités et surtout offre un choix de plusieurs milliers de bibliothèques supplémentaires. Avec _create-react-app_, le démarrage est très simple. L'application inclut :

- React, JSX, ES6, TypeScript et le support pour Flow syntax.
- Langages complémentaires à ES6 comme l'opérateur de propagation d'objet.
- CSS auto-préfixé, pour se passer de -webkit- ou d'autres préfixes.
- Un exécuteur de test unitaire interactif rapide avec une prise en charge intégrée pour les rapports de couverture.
- Un serveur de développement en direct qui signale les erreurs courantes.
- Un script de construction pour associer du JS, du CSS et des images en vue de la mise en production, avec des hachages et une cartographie du code source.

_create-react-app_, en particulier, fait usage des nouveaux [effets hooks](https://reactjs.org/docs/hooks-effect.html). Une méthode pour écrire de puissants mais très petits composants, dits fonctionnels. Voir ci-dessous la section sur Apollo pour savoir comment ils sont utilisés dans _create-react-app_.

### Espaces de travail Yarn {#yarn-workspaces}

[Les espaces de travail Yarn](https://classic.yarnpkg.com/en/docs/workspaces/) vous permettent de disposer de plusieurs paquets, mais également d'être en mesure de tous les gérer à partir du dossier racine et d'installer toutes leurs dépendances en une fois en utilisant `yarn install`. Ceci est particulièrement adapté pour les petits packs additionnels, tels que les adresses de contrats intelligents/la gestion ABI (les informations sur l'endroit où vous avez déployé tels contrats intelligents et comment communiquer avec eux) ou l'intégration de graphes, les deux parties de `create-eth-app`.

### ethers.js {#ethersjs}

Si [Web3](https://docs.web3js.org/) est encore largement utilisé, [ethers.js](https://docs.ethers.io/) a davantage été employé comme alternative l'année dernière et est intégré à _create-eth-app_. Vous pouvez travailler avec celui-ci, le faire évoluer vers Web3 ou envisager une mise à niveau pour passer à [ethers.js v5](https://docs-beta.ethers.io/) qui n'est pratiquement plus en version bêta.

### Le réseau Graph {#the-graph}

[GraphQL](https://graphql.org/) est un moyen alternatif de gérer les données par rapport à une [API Restful](https://restfulapi.net/). Il offre plusieurs avantages par rapport aux APIs REST, en particulier pour les données décentralisées de la blockchain. Si vous êtes intéressé par le raisonnement qui le sous-tend, jetez un œil à [GraphQL va propulser le Web décentralisé](https://medium.com/graphprotocol/graphql-will-power-the-decentralized-web-d7443a69c69a).

Vous récupérez normalement directement les données de votre contrat intelligent. Vous souhaitez connaître l'instant précis de la dernière transaction ? Appelez simplement `MyContract.methods.latestTradeTime().call()` qui récupère les données d'un nœud Ethereum comme Infura dans votre dApp. Mais que faire si vous avez besoin de centaines de points de données différents ? Il en résulterait des centaines d'extractions de données vers le nœud, nécessitant à chaque fois un [RTT](https://wikipedia.org/wiki/Round-trip_delay_time) qui ralentirait votre dApp et lui ferait perdre son efficacité. Pour éviter cela, une solution pourrait être d'utiliser une fonction d'appel de récupération dans votre contrat qui restitue plusieurs données à la fois. Ce n'est cependant pas toujours idéal.

Vous pourriez également être intéressé par les données historiques. Vous souhaitez peut-être connaître non seulement le moment de la dernière transaction mais également le moment de chacune des transactions que vous avez réalisées vous-même. Utilisez le paquet subgraph de _create-eth-app_, lisez la [documentation](https://thegraph.com/docs/define-a-subgraph) et adaptez-la à vos propres contrats. Si vous êtes à la recherche de contrats intelligents populaires, il se peut même qu'il en existe déjà un avec subgraph. Jetez un œil à [l'explorateur de sous-graphes](https://thegraph.com/explorer/).

Une fois que vous disposez d'un subgraph, vous pouvez écrire une simple requête dans votre dApp afin de récupérer toutes les données importantes de la blockchain, y compris les données historiques dont vous avez besoin. Une seule demande de récupération suffit.

### Apollo {#apollo}

Grâce à l'intégration d'[Apollo Boost](https://www.apollographql.com/docs/react/get-started/), vous pouvez facilement intégrer Graph dans votre dApp React. Surtout lorsque vous utilisez [des hooks React et Apollo](https://www.apollographql.com/blog/apollo-client-now-with-react-hooks-676d116eeae2), récupérer des données est aussi simple que d'écrire une requête GraphQl dans votre composant:

```js
const { loading, error, data } = useQuery(myGraphQlQuery)

React.useEffect(() => {
if (!loading && !error && data) {
console.log({ data })
}
}, [loading, error, data])
```

## Modèles (Templates) {#templates}

En haut, il est possible de choisir parmi différents modèles. À ce jour, vous pouvez utiliser une intégration Aave, Compound, UniSwap ou Sablier. Ces modèles ajoutent tous des adresses importantes de contrats intelligents de service ainsi que des intégrations pré-construites de subgraph. Il suffit d'ajouter le modèle à la commande de création comme `yarn create eth-app my-eth-app --with-template aav`.

### Aave {#aave}

[Aave](https://aave.com/) est un marché décentralisé de prêt d'argent. Les déposants fournissent des liquidités au marché pour gagner un revenu passif, tandis que les emprunteurs peuvent emprunter avec des garanties. Une fonctionnalité exclusive d'Aave réside dans ces [prêts flash](https://docs.aave.com/developers/guides/flash-loans) qui vous permettent d'emprunter de l'argent sans aucune garantie, pour autant que vous remboursiez le prêt en une seule transaction. Cela peut être utile par exemple pour vous donner de l'argent supplémentaire sur l'arbitrage d'échange.

Les jetons échangés qui vous rapportent des intérêts sont appelés _aTokens_.

Si vous choisissez d'intégrer Aave avec _create-eth-app_, vous obtiendrez une [intégration subgraph](https://docs.aave.com/developers/getting-started/using-graphql). Aave utilise The Graph et vous fournit déjà plusieurs Subgraphs prêts à l'emploi sur [Ropsten](https://thegraph.com/explorer/subgraph/aave/protocol-ropsten) et [le réseau principal](https://thegraph.com/explorer/subgraph/aave/protocol) en formulaire [brut](https://thegraph.com/explorer/subgraph/aave/protocol-raw) ou [formaté](https://thegraph.com/explorer/subgraph/aave/protocol).

![Aave Flash Loan meme - "Ouah, si je pouvais garder mon prêt flash plus longtemps qu'une transaction, ce serait génial&quot ;](./flashloan-meme.png)

### Compound {#compound}

[Compound](https://compound.finance/) est similaire à Aave. L'intégration inclut déjà le nouveau [Compound v2 Subgraph](https://medium.com/graphprotocol/https-medium-com-graphprotocol-compound-v2-subgraph-highlight-a5f38f094195). Les intérêts gagnés des jetons sont ici étonnamment appelés _cTokens_.

### Uniswap {#uniswap}

[Uniswap](https://uniswap.exchange/) est un système d'échange décentralisé (DEX). Les fournisseurs de liquidités peuvent percevoir des commissions en fournissant les jetons ou l'éther requis pour les deux parties d'une transaction. Le protocole est largement utilisé et dispose donc de liquidités très nombreuses pour une très large gamme de jetons. Vous pouvez facilement l'intégrer dans votre dApp pour permettre, par exemple, aux utilisateurs d'échanger leur ETH contre du DAI.

Malheureusement, à l'heure où ces lignes sont écrites, l'intégration est uniquement proposée pour Uniswap v1 et non pour la toute nouvelle version [v2](https://uniswap.org/blog/uniswap-v2/).

### Sablier {#sablier}

[Sablier](https://sablier.com/) permet aux utilisateurs d'effectuer des paiements en continu. Au lieu d'un seul versement, vous recevez en fait votre argent en continu sans avoir rien d'autre à faire après la mise en place initiale. L'intégration inclut son [propre sous-graphe](https://thegraph.com/explorer/subgraph/sablierhq/sablier).

## Et après ? {#whats-next}

Si vous avez des questions sur _create-eth-app_, allez sur le [serveur de la Communauté Sablier](https://discord.gg/bsS8T47), où vous pouvez entrer en contact avec les auteurs de _create-eth-app_. Dans un premier temps, vous pourriez vouloir intégrer un framework d'interface utilisateur comme [Material UI](https://material-ui.com/), écrire des requêtes GraphQL pour les données dont vous avez réellement besoin et configurer le déploiement.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags:
- "remix"
- "solidity"
- "événements"
skill: advanced
skill: intermediate
lang: fr
published: 2020-04-03
source: EthereumDev
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -743,7 +743,7 @@ C'est la fonction principale de l'usine : créer un échange de paires entre deu
(address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
```

Nous souhaitons que l'adresse du nouvel échange soit déterminable de sorte qu'elle puisse être calculée à l'avance hors chaîne (cela peut être utile pour [les transactions de couche 2](/developers/docs/scaling/)). Pour cela, nous devons avoir les adresses de jetons dans un ordre cohérent indépendant de l'ordre dans lequel nous les avons reçus. Aussi les trions-nous ici.
Nous souhaitons que l'adresse du nouvel échange soit déterminable de sorte qu'elle puisse être calculée à l'avance hors chaîne (cela peut être utile pour [les transactions de couche 2](/developers/docs/layer-2-scaling/)). Pour cela, nous devons avoir les adresses de jetons dans un ordre cohérent indépendant de l'ordre dans lequel nous les avons reçus. Aussi les trions-nous ici.

```solidity
require(token0 != address(0), 'UniswapV2: ZERO_ADDRESS');
Expand Down
Loading
Loading