# Vérifier des smart contracts sur le Polygon zkEVM avec l'explorateur

> Le code source des smart contracts déployés sur la chaîne Polygon POS peut être vérifié avec l'explorateur, de la même manière, les contrats déployés sur le testnet Polygon zkEVM peuvent aussi être vérifiés avec l'explorateur du testnet Polygon zkEVM...

Par Shodipo Ayomide, publié le 19 janv. 2023. Version web : https://blog.shodipoayomide.com/fr/verifying-smart-contracts-on-the-polygon-zkevm-using-the-explorer

![](https://blog.shodipoayomide.com/banners/Verifying-Smart-Contracts-on-the-Polygon-zkEVM-Using-the-Explorer.png)

Le code source des smart contracts déployés sur la chaîne Polygon POS peut être vérifié avec l'explorateur, de la même manière, les contrats déployés sur le testnet Polygon zkEVM peuvent aussi être vérifiés avec l'explorateur du testnet Polygon zkEVM. Nous allons voir comment faire dans ce tutoriel technique.

Les smart contracts vérifiés apportent l'absence de besoin de confiance (trustlessness), car ce sont des contrats dont le code source publié correspond à leur bytecode. Les smart contracts vérifiés garantissent. Cela permet aux utilisateurs de lire le contrat et de comprendre comment il a été implémenté, et aussi d'interagir directement avec lui via l'explorateur.

Avant de commencer la vérification, il faut comprendre que les contrats peuvent tenir dans un seul fichier ou dans plusieurs fichiers. Les fichiers Solidity uniques sont des contrats Solidity qui n'héritent d'aucun autre contrat, d'aucune bibliothèque ni d'aucune interface.

Dans la vraie vie, les contrats déployés seront rarement des fichiers Solidity uniques, donc dans ce tutoriel, nous allons vérifier un token ERC20 déployé sur le testnet zkEVM. Les fichiers Solidity uniques se vérifient exactement de la même manière.

Passons maintenant à la vérification de nos contrats zkEVM !

## Déployer notre contrat

La première étape consiste à déployer notre contrat

Pour pouvoir déployer sur le testnet, vous devez l'avoir importé dans votre portefeuille metamask. Si ce n'est pas le cas, suivez les étapes décrites dans cet [article de blog](https://polygon.technology/blog/your-three-step-guide-to-using-polygon-zkevm-yes-its-that-easy). L'article explique en détail comment importer le testnet et aussi comment obtenir des ETH de testnet.

Pour déployer, rendez-vous sur [Remix IDE](https://remix.ethereum.org/), créez un nouveau fichier et collez-y ce code.

```rust
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract zkToken is ERC20, Ownable {
    constructor() ERC20("zkToken", "ZKT") {
        _mint(msg.sender, 10000 * 10 ** decimals());

    }

    function mint(address to, uint256 amount) public onlyOwner {
            _mint(to, amount);
    }

}
```

Rendez-vous dans l'« onglet compile » et, avant de compiler, notez la version du compilateur que vous utilisez. Ici, nous utiliserons la version 0.8.12.

![](https://i.ibb.co/x1Bp8Dp/Screenshot-90-LI.jpg)

Une fois que vous avez cliqué sur « compile » et que le contrat a bien été compilé, il est temps de déployer.

Allez maintenant dans l'onglet « Deploy & Run Transaction ». Passez de l'option par défaut « Remix VM London » à « Injected Web3 Provider », ce qui fera apparaître metamask. Avant de faire cela, assurez-vous d'avoir basculé sur le testnet Polygon zkEVM.

![](https://i.ibb.co/5xn2pmS/Screenshot-92.png)

Connectez votre portefeuille, cliquez sur le bouton orange « deploy » et le contrat sera déployé immédiatement !

Comme notre contrat importe d'autres contrats, nous ne pouvons pas le vérifier en collant directement notre code source, il va falloir aplatir notre code.

## Aplatir notre contrat avec le plugin Flattener dans Remix

Quand on aplatit nos smart contracts, on regroupe tout le code Solidity dans un seul fichier au lieu d'avoir plusieurs fichiers sources. Cela signifie qu'au lieu d'avoir des imports, le code importé est désormais intégré dans le même fichier.

Pour aplatir notre smart contract, nous suivons les étapes suivantes :

**Étape 1** - Allez dans le « plugin manager » de Remix, qui se trouve juste au-dessus de l'onglet des paramètres.

![](https://i.ibb.co/tpH6QVn/Screenshot-97-LI.jpg)

**Étape 2** - Recherchez le plugin « Flattener » et activez-le

![](https://i.ibb.co/0JKL8Lx/Screenshot-98-LI.jpg)

**Étape 3** - Allez maintenant dans l'onglet du flattener et cliquez sur « Flatten Contracts/zkToken.

![](https://i.ibb.co/MZH7FzL/Screenshot-99.png)

**Étape 4** - Le contrat aplati est ensuite enregistré en cliquant sur le bouton d'enregistrement

## Vérifier le contrat sur l'explorateur

Maintenant que notre contrat est déployé, nous pouvons le consulter sur l'[explorateur](https://explorer.public.zkevm-test.net/).

Tout d'abord, nous collons l'adresse du contrat dans la barre de recherche et nous arrivons sur cette interface.

![](https://i.ibb.co/HNRNbMd/Screenshot-94.png)

Allez dans l'onglet « code » et repérez le bouton « verify and publish ».

![](https://i.ibb.co/NSJwHXm/Screenshot-95-LI.jpg)

Après avoir cliqué sur le bouton « verify and publish », trois options s'offrent à nous, nous allons choisir la première, « verify via flattened source code », puis cliquer sur « Next »

![](https://i.ibb.co/gSfzjGN/Screenshot-96-LI.jpg)

Ensuite, nous remplissons le formulaire qui s'affiche.

- nom du contrat : « zkToken »
- compilateur : v0.8.12 (c'est la version du compilateur que nous avons utilisée)
- optimisation : non (nous n'avons pas optimisé le contrat)
- Enfin, nous copions-collons notre code source aplati dans le champ « Enter the Solidity Contract Code » et cliquons sur le bouton « verify & Publish ».

nous laissons le reste tel quel.

![](https://i.ibb.co/1MgLVzz/Screenshot-100.png)

Et voilà ! Nous avons maintenant la coche qui indique que notre contrat a été vérifié !

![](https://i.ibb.co/2Kddxnr/Screenshot-101.png)

---

## Conclusion

Nous avons vérifié avec succès notre contrat ERC20 sur le testnet Polygon zkEVM, tout le monde peut désormais interagir avec lui. Plus tôt, j'ai mentionné que les fichiers Solidity uniques peuvent être vérifiés en suivant ces mêmes étapes, sauf que vous n'avez pas besoin d'aplatir votre code.

Très bientôt, je pense que des outils de vérification comme Sourcify, qui proposent une vérification complète à partir des métadonnées du contrat, prendront en charge le testnet Polygon zkEVM, et quand ce sera le cas, j'écrirai un article à ce sujet !
