Traduit de l'article original en anglais. Lire en anglais

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 !
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. 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, créez un nouveau fichier et collez-y ce code.
// 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.

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.

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.
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.

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

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

Étape 4 - Le contrat aplati est ensuite enregistré en cliquant sur le bouton d'enregistrement
Maintenant que notre contrat est déployé, nous pouvons le consulter sur l'explorateur.
Tout d'abord, nous collons l'adresse du contrat dans la barre de recherche et nous arrivons sur cette interface.

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

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 »

Ensuite, nous remplissons le formulaire qui s'affiche.
nous laissons le reste tel quel.

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

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 !
Recevez les derniers articles dans votre boîte mail.