Capitalisation boursière: $3.8892T 0.810%
Volume(24h): $178.4653B 36.330%
Indice de peur et de cupidité:

68 - Avidité

  • Capitalisation boursière: $3.8892T 0.810%
  • Volume(24h): $178.4653B 36.330%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $3.8892T 0.810%
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
Top Cryptospedia

Choisir la langue

Choisir la langue

Sélectionnez la devise

Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos

Comment utiliser les contrats Openzeppelin?

Les contrats Openzeppelin fournissent des contrats intelligents sécurisés et réutilisables pour Ethereum, permettant aux développeurs de construire efficacement les jetons et les DAPP avec des normes telles que ERC-20 et ERC-721.

Jul 21, 2025 at 05:35 am

Comprendre les contrats d'OpenZeppelin

Openzeppelin Contracts est une bibliothèque de contrats intelligents réutilisables et sécurisés pour Ethereum et d'autres plateformes de blockchain qui soutiennent la solidité. Ces contrats sont largement utilisés dans le développement d'applications décentralisées (DAPP) et de systèmes de jetons. La bibliothèque fournit des implémentations de normes telles que ERC-20, ERC-721 et ERC-1155 , ainsi que des services publics liés à la sécurité tels que propriétaires, pauvres et Safemath . Les développeurs utilisent Openzeppelin pour éviter de réinventer la roue et pour s'assurer que leurs contrats intelligents sont construits sur une fondation qui a été audité et testée de manière approfondie .

Avant de plonger dans la mise en œuvre, il est crucial de comprendre comment les contrats sont structurés et comment les importer dans votre projet. Les contrats sont modulaires, ce qui signifie que vous ne pouvez importer que ce dont vous avez besoin. Cette modularité aide à réduire les coûts du gaz et à améliorer la maintenabilité.

Configuration de votre environnement de développement

Pour utiliser les contrats Openzeppelin, vous devez d'abord configurer un environnement de développement. Commencez par installer Node.js et NPM , qui sont essentiels pour gérer les packages JavaScript. Une fois installé, initialisez un nouveau projet en utilisant:

 npm init -y

Ensuite, installez Truffle , un cadre de développement Ethereum populaire, ou HardHat , un autre outil largement utilisé:

 npm install -g truffle ou

Installation de NPM - Save-dev Hardhat

Après avoir configuré le framework, installez les contrats Openzeppelin via NPM:

 npm install @openzeppelin/contracts

Cette commande installe la bibliothèque Openzeppelin dans le répertoire Node_Modules de votre projet. Vous pouvez désormais importer des contrats individuels ou des fonctions d'utilité directement dans vos fichiers de solidité.

Importation et étendant les contrats d'Openzeppelin

Une fois installé, vous pouvez commencer à importer des contrats Openzeppelin dans vos fichiers de solidité. Par exemple, si vous construisez un jeton ERC-20 , vous pouvez importer le contrat ERC20.Sol :

 pragma solidity ^0.8.0; import '@ openzeppelin / contracts / token / erc20 / erc20.sol';

Contrat MyToken est ERC20 {

constructor(uint256 initialSupply) ERC20('MyToken', 'MTK') { _mint(msg.sender, initialSupply); }

}

Ce code crée un nouveau jeton qui étend le contrat ERC20 à partir d'Openzeppelin. Le constructeur prend une alimentation initiale et le affecte à l'adresse du déploiement à l'aide de la fonction _mint . Il s'agit d'une façon sécurisée et testée de créer des jetons sans écrire de code de passe-partout.

Si vous avez besoin de fonctionnalités supplémentaires, telles que des contrôles de pause ou de propriété , vous pouvez importer et étendre d'autres contrats:

 import '@openzeppelin/contracts/access/Ownable.sol';
import '@openzeppelin/contracts/security/Pausable.sol';
contrat mypausabletoken est ERC20, propriétaire, pausable {

constructor(uint256 initialSupply) ERC20('MyToken', 'MTK') { _mint(msg.sender, initialSupply); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); }

}

Cette approche vous permet de composer vos contrats avec des composants sécurisés et testés au combat .

Déploiement de contrats avec Openzeppelin

Une fois votre contrat écrit, la prochaine étape est le déploiement. Si vous utilisez Truffle , créez un fichier de migration dans les migrations / répertoire:

 const MyPausableToken = artifacts.require('MyPausableToken'); module.exports = fonction (déploieur) {
Deployer.Deploy (MyPausableToken, 1000000);
};

Ce script déploie le contrat avec une offre initiale de 1 000 000 de jetons . Exécutez la migration en utilisant:

 truffle migrate --network

Si vous utilisez HardHat , créez un script de déploiement dans les scripts / dossier:

 async function main() {
const MyPausableToken = await ethers.getContractFactory('MyPausableToken');
const myToken = await MyPausableToken.deploy(1000000);
await myToken.deployed();
console.log ('mypausabletoken déployé à:', mytoken.address);
}

main (). catch ((error) => {
Console.Error (erreur);
process.exitcode = 1;
});

Ensuite, déployez en utilisant:

 npx hardhat run scripts/deploy.js --network

Assurez-vous d'avoir un compte Ethereum financé et la configuration du réseau correct dans votre fichier truffle-config.js ou hardhat.config.js .

Interagir avec les contrats déployés

Après le déploiement, vous pouvez interagir avec votre contrat à l'aide d'outils comme Remix IDE , Metamask ou Ethers.js . Si vous utilisez Ethers.js , connectez-vous à votre contrat comme suit:

 const { ethers } = require('ethers'); const Provider = newThers.providers.jsonrpcprovider ('https://mainnet.infura.io/v3/your_infura_project_id');
const Signer = new Ethers.Wallet ('your_private_key', fournisseur);
const ContractAddress = 'Your_Contract_Address';
const ab = require ('./ mypausabletoken.json'). Abi;

const Contract = New Ethers.Contract (ContractAddress, ABI, signataire);

fonction asynchrone pauseContract () {
const tx = attendre contrat.pause ();
attendre tx.wait ();
console.log («contrat pause»);
}

Assurez-vous que le signataire dispose de fonds suffisants pour payer le gaz. Vous pouvez également interagir avec le contrat à l'aide de Web3.js ou via des explorateurs de blockchain comme Etherscan .

Questions fréquemment posées

Q: Puis-je modifier directement les contrats Openzeppelin?

R: Bien que vous puissiez techniquement modifier les contrats, il n'est pas recommandé . Au lieu de cela, vous devez étendre les contrats et remplacer les fonctions si nécessaire. La modification des contrats d'origine peut introduire des vulnérabilités de sécurité ou rompre la compatibilité avec les futures mises à jour.

Q: Comment puis-je mettre à niveau un contrat établi avec Openzeppelin?

R: OpenZeppelin fournit les plugins de mise à niveau de la truffe et de HardHat pour déployer et gérer les contrats moderniques . Ces outils vous permettent de procurer des contrats et de mettre à jour leur logique sans perdre l'état.

Q: Les contrats Openzeppelin sont-ils compatibles avec des versions de solidité supérieures à 0,8.x?

R: Oui, les contrats Openzeppelin sont activement maintenus et soutiennent la solidité 0,8.x et supérieure . Cependant, vérifiez toujours la compatibilité de la version dans la documentation officielle ou sur NPM avant l'importation.

Q: Est-il sûr d'utiliser des contrats Openzeppelin en production?

R: Oui, les contrats Openzeppelin sont largement utilisés dans les environnements de production et ont été vérifiés par plusieurs tiers. Cependant, effectuez toujours vos propres audits et tests avant de se déployer sur MainNet.

Clause de non-responsabilité:info@kdj.com

Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!

Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.

Connaissances connexes

Voir tous les articles

User not found or password invalid

Your input is correct