diff --git a/public/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md index 7d394f8fb05..95005ce720f 100644 --- a/public/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md +++ b/public/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md @@ -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) }) ``` @@ -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) }) ``` diff --git a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md index 82a54ecc379..1877b234c5a 100644 --- a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -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 `@` sont compris par [NatSpec](https://vyper.readthedocs.io/en/latest/natspec.html) afin de produire une documentation compréhensible pour l'être humain. @@ -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( ``` diff --git a/public/content/translations/fr/developers/tutorials/erc20-with-safety-rails/index.md b/public/content/translations/fr/developers/tutorials/erc20-with-safety-rails/index.md index fee27446296..e16a55fd4bb 100644 --- a/public/content/translations/fr/developers/tutorials/erc20-with-safety-rails/index.md +++ b/public/content/translations/fr/developers/tutorials/erc20-with-safety-rails/index.md @@ -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 : diff --git a/public/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md index 9810f82551b..d2b4a64b74c 100644 --- a/public/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md +++ b/public/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md @@ -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" ) ``` diff --git a/public/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md index aa0f62dc6f7..f51ede85368 100644 --- a/public/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md @@ -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. @@ -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. -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/) ! diff --git a/public/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md index 1536adf8287..5270bcc277c 100644 --- a/public/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md +++ b/public/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md @@ -6,8 +6,8 @@ lang: fr tags: - "solidity" - "contrats intelligents" - - "tests" - - "simulation" + - "test" + - "bouchonnage" skill: intermediate published: 2020-05-02 source: soliditydeveloper.com diff --git a/public/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md index faffc37b855..3bd9e95879b 100644 --- a/public/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md +++ b/public/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md @@ -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 diff --git a/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 1026c8e82d9..22ff9cfcebd 100644 --- a/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -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 @@ -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", @@ -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 @@ -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 @@ -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 diff --git a/public/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-wth-create-eth-app/index.md b/public/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-wth-create-eth-app/index.md new file mode 100644 index 00000000000..b756c45d627 --- /dev/null +++ b/public/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-wth-create-eth-app/index.md @@ -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" ;](./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. diff --git a/public/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md index 63b9adf9e2d..6f8a89afd02 100644 --- a/public/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md +++ b/public/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md @@ -7,7 +7,7 @@ tags: - "remix" - "solidity" - "événements" -skill: advanced +skill: intermediate lang: fr published: 2020-04-03 source: EthereumDev diff --git a/public/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md index 28c8d0e8d53..ffd0da82b7c 100644 --- a/public/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md +++ b/public/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md @@ -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'); diff --git a/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md index 4945aecd75f..3dbabf656d5 100644 --- a/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -199,5 +199,5 @@ Le test, s'il est accepté, nous assurera que la transaction a bien été annul Vous avez fait votre premier (grand) pas vers les tests des contrats intelligents avec Waffle ! Vous pourriez être intéressé par d'autres tutoriels Waffle : - [Tester ERC20 avec Waffle](/developers/tutorials/testing-erc-20-tokens-with-waffle/) -- [Waffle : Bouchonnage dynamique et tests de contrats](/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/#gatsby-focus-wrapper) -- [Tutoriel pour "dire bonjour au monde" avec hardhat et ethers](/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/) +- [Waffle: Bouchonnage dynamique et tests de contrats](/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/#gatsby-focus-wrapper) +- [Tutoriel pour "dire bonjour au monde" avec hardhat et ethers](/developers/tutorials/waffle-hello-world-with-buidler-tutorial/)