-
Bitcoin
$118100
1.61% -
Ethereum
$3732
2.55% -
XRP
$3.188
3.93% -
Tether USDt
$1.000
-0.01% -
BNB
$779.9
0.66% -
Solana
$186.2
3.22% -
USDC
$1.000
-0.01% -
Dogecoin
$0.2373
4.46% -
TRON
$0.3204
0.86% -
Cardano
$0.8308
4.67% -
Hyperliquid
$43.81
1.85% -
Sui
$4.231
12.51% -
Stellar
$0.4403
6.05% -
Chainlink
$18.35
3.50% -
Hedera
$0.2858
13.22% -
Bitcoin Cash
$555.7
2.45% -
Avalanche
$24.70
5.43% -
Litecoin
$113.8
1.98% -
Shiba Inu
$0.00001407
3.48% -
UNUS SED LEO
$8.981
0.00% -
Toncoin
$3.303
5.04% -
Ethena USDe
$1.001
0.00% -
Polkadot
$4.132
3.29% -
Uniswap
$10.46
3.82% -
Monero
$321.8
-0.76% -
Dai
$1.000
0.00% -
Bitget Token
$4.546
1.43% -
Pepe
$0.00001257
4.06% -
Cronos
$0.1396
9.84% -
Aave
$294.8
1.91%
Comment utiliser Hardhat pour tester un contrat intelligent?
Hardhat est un environnement de développement Ethereum qui rationalise des tests de contrat intelligents avec des outils comme Mocha et Chai, assurant un déploiement fiable.
Jul 26, 2025 at 11:15 pm

Qu'est-ce que Hardhat et pourquoi l'utiliser pour des tests de contrat intelligents?
Hardhat est un environnement de développement Ethereum qui permet aux développeurs de compiler, déployer, déboguer et tester efficacement les contrats intelligents . Il fournit un environnement blockchain local connu sous le nom de HardHat Network , qui imite le comportement de réseaux réels Ethereum comme MainNet ou Ropsten, ce qui le rend idéal à des fins de test.
L'une des principales raisons pour lesquelles les développeurs préfèrent Hardhat est sa flexibilité et son riche écosystème de plugin. Que vous écriviez des tests unitaires avec Mocha , que vous utilisez Chai pour des affirmations ou que vous déboguez avec des outils intégrés, Hardhat rationalise l'ensemble du cycle de vie de développement des contrats intelligents. Cela le rend particulièrement utile lorsque vous souhaitez vous assurer que votre logique contractuelle se comporte correctement avant de la déployer sur un réseau en direct.
Configuration de votre environnement de développement
Avant de plonger dans les tests, il est essentiel de mettre en place un environnement approprié:
- Installez Node.js : assurez-vous que Node.js (version 14.x ou supérieur) et NPM sont installés.
- Initialisez un projet : Exécutez
npm init -y
dans votre répertoire de projet pour créer un fichierpackage.json
. - Installer HardHat : Exécutez
npm install --save-dev hardhat
pour ajouter HardHat à votre projet. - Créer un fichier de configuration HardHat : Exécutez
npx hardhat
et sélectionnez «Créer un projet JavaScript» pour générer le fichierhardhat.config.js
.
Une fois cette configuration terminée, vous pouvez commencer à écrire et tester vos contrats intelligents .
Rédaction d'un contrat intelligent de base pour les tests
Pour démontrer comment utiliser HardHat pour les tests, considérons un simple contrat de solidité :
// contracts/Token.sol
Token contractuel {
pragma solidity ^0.8.0;mapping(address => uint256) public balances; function transfer(address to, uint256 amount) external { require(balances[msg.sender] >= amount, 'Insufficient balance'); balances[msg.sender] -= amount; balances[to] += amount; } function mint(address account, uint256 amount) external { balances[account] += amount; }
}
Ce contrat de jeton de base comprend des fonctions de transfert et de jetons de front et de frappe. L'objectif est de tester si ces fonctions se comportent comme prévu dans différents scénarios en utilisant le cadre de test de HardHat .
Configuration de l'environnement de test
Avant d'écrire des tests, assurez-vous que votre structure de projet prend en charge les tests:
- Placez vos contrats de solidité dans les
contracts/
dossiers. - Stockez les fichiers de test dans le
test/
répertoire. - Mettre à jour
hardhat.config.js
si nécessaire (par exemple, ajouter des réseaux ou des plugins).
Voici un exemple de configuration minimal:
// hardhat.config.js
module.exports = {
solidity: '0.8.0',
};
Avec cette configuration, vous êtes prêt à écrire et à exécuter des tests à l'aide de moka et de chai .
Des tests d'écriture à l'aide de moka et de chai
HardHat s'intègre parfaitement à Mocha , un cadre de test JavaScript populaire, et Chai , une bibliothèque d'assertion.
Commencez par créer un fichier de test dans le test/
répertoire:
// test/token-test.js
décrire («contrat de jeton», fonction () {
const { expect } = require('chai');
Laisser le jet;
Que Hardhattoken;
Laisser le propriétaire;
Laissez addr1;AVANTEACH (fonction asynchrone () {
Token = await ethers.getContractFactory('Token'); [owner, addr1] = await ethers.getSigners(); hardhatToken = await Token.deploy(); await hardhatToken.deployed();
});
il ('devrait attribuer l'alimentation totale au propriétaire', fonction asynchrone () {
await hardhatToken.mint(owner.address, 100); const ownerBalance = await hardhatToken.balances(owner.address); expect(ownerBalance).to.equal(100);
});
il ('devrait transférer des jetons entre les comptes', fonction asynchrone () {
await hardhatToken.mint(owner.address, 100); await hardhatToken.transfer(addr1.address, 50); const addr1Balance = await hardhatToken.balances(addr1.address); expect(addr1Balance).to.equal(50);
});
il ('devrait échouer si l'expéditeur n'a pas assez de jetons', fonction async () {
const initialOwnerBalance = await hardhatToken.balances(owner.address); await expect( hardhatToken.transfer(addr1.address, 1) ).to.be.revertedWith('Insufficient balance'); expect(await hardhatToken.balances(owner.address)).to.equal(initialOwnerBalance);
});
});
Chaque cas de test utilise Chai pour affirmer les résultats attendus. Le Hook beforeEach
assure un nouveau déploiement pour chaque test, empêchant les interférences entre les cas de test.
Exécution de tests avec Hardhat
Une fois vos tests écrits, les exécuter est simple:
- Ouvrez un terminal dans le répertoire des racines de votre projet.
- Exécutez le
npx hardhat test
.
La sortie montrera les résultats de chaque test, y compris les cas passés et défaillants. Si un test échoue, HardHat affichera les messages d'erreur détaillés pour aider à identifier rapidement les problèmes.
Pour plus de contrôle granulaire, vous pouvez exécuter des fichiers de test spécifiques en ajoutant le chemin du fichier:
npx hardhat test test/token-test.js
Cela vous permet de vous concentrer sur des comportements contractuels spécifiques sans relancer l'ensemble de la suite de tests.
Questions fréquemment posées
Q: Puis-je utiliser Hardhat sans solidité?
Oui, bien que Hardhat soit principalement conçu pour la solidité , il peut également être utilisé avec d'autres langages compatibles EVM tels que VYPER , bien que le soutien de la communauté puisse varier.
Q: Comment déboguer les tests ratés dans HardHat?
Utilisez Console.log à partir de @ NomicLabs / Hardhat-Waffle ou l' environnement d'exécution de HardHat (HRE) pour imprimer des valeurs de variables pendant l'exécution du test. De plus, inspectez les reçus de transaction et réactivez les raisons fournies dans la sortie du test.
Q: Puis-je tester les mises à niveau des contrats en utilisant Hardhat?
Oui, HardHat prend en charge les modèles proxy via des plugins comme @ Openzeppelin / HardHat-Upgrades , vous permettant de simuler et de tester les contrats moderniques localement.
Q: Y a-t-il des alternatives à Mocha et Chai pour les tests en hardhat?
Bien que Mocha et Chai soient largement adoptés, vous pouvez intégrer d'autres cadres de test comme la plaisanterie avec une configuration supplémentaire, bien que la prise en charge et la documentation natives soient plus matures pour Mocha et Chai .
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.
-
PEP
$0.0007202
46.44%
-
TAG
$0.0007710
27.62%
-
BLAST
$0.003776
27.13%
-
RSC
$0.6882
26.99%
-
KEEP
$0.1024
23.68%
-
WILD
$0.4101
20.93%
- MEME COINS En juillet 2025: Bitcoin prend un siège arrière?
- 2025-07-27 10:30:12
- Hifi Price Eyes Breakout: ligne de tendance à la baisse dans la réticule?
- 2025-07-27 10:30:12
- Prowesses de l'économie des mèmes du chat troller: ROI de prévente et domination virale
- 2025-07-27 10:50:12
- Bitcoin Prix tombe: les modèles de graphique pointent vers le bas?
- 2025-07-27 10:50:12
- Case haussière d'Ethereum: le modèle de drapeau indique 4 800 $?
- 2025-07-27 11:10:18
- Ethena (ENA) & Anchorage Digital: un partenariat de génie déclenchant une révolution de stablecoin
- 2025-07-27 11:10:18
Connaissances connexes

Pourquoi la position des futures Bitstamp est-elle liquidée?
Jul 23,2025 at 11:08am
Comprendre la liquidation à terme sur Bitstamp Le trading à terme sur Bitstamp consiste à emprunter des fonds pour ouvrir des positions à effet de lev...

Bitstamp propose-t-il des contrats inverses?
Jul 23,2025 at 01:28pm
Comprendre les contrats inverses dans le trading des crypto-monnaies Dans le domaine des dérivés des crypto-monnaies, les contrats inverses sont un ty...

Quelle est la différence entre les futurs et les perpétuaux sur Bitstamp?
Jul 27,2025 at 05:08am
Comprendre les contrats à terme sur Bitstamp Les contrats à terme sur Bitstamp sont des dérivés financiers qui permettent aux traders de spéculer sur ...

Comment trouver votre histoire commerciale à terme Bitstamp?
Jul 23,2025 at 08:07am
Comprendre la disponibilité du trading bitstamp et à terme À partir de l'état actuel des offres de services de Bitstamp, il est essentiel de clari...

Puis-je utiliser un arrêt de fuite sur Bitstamp Futures?
Jul 23,2025 at 01:42pm
Comprendre les arrêts de fuite dans le trading des crypto-monnaies Un arrêt de fuite est un type dynamique de commande stop-loss qui s'ajuste auto...

Puis-je utiliser un arrêt de fuite sur Bitstamp Futures?
Jul 25,2025 at 02:28am
Comprendre les arrêts de fuite dans le trading à terme des crypto-monnaies Un arrêt de fuite est un type dynamique de commande stop-loss qui s'aju...

Pourquoi la position des futures Bitstamp est-elle liquidée?
Jul 23,2025 at 11:08am
Comprendre la liquidation à terme sur Bitstamp Le trading à terme sur Bitstamp consiste à emprunter des fonds pour ouvrir des positions à effet de lev...

Bitstamp propose-t-il des contrats inverses?
Jul 23,2025 at 01:28pm
Comprendre les contrats inverses dans le trading des crypto-monnaies Dans le domaine des dérivés des crypto-monnaies, les contrats inverses sont un ty...

Quelle est la différence entre les futurs et les perpétuaux sur Bitstamp?
Jul 27,2025 at 05:08am
Comprendre les contrats à terme sur Bitstamp Les contrats à terme sur Bitstamp sont des dérivés financiers qui permettent aux traders de spéculer sur ...

Comment trouver votre histoire commerciale à terme Bitstamp?
Jul 23,2025 at 08:07am
Comprendre la disponibilité du trading bitstamp et à terme À partir de l'état actuel des offres de services de Bitstamp, il est essentiel de clari...

Puis-je utiliser un arrêt de fuite sur Bitstamp Futures?
Jul 23,2025 at 01:42pm
Comprendre les arrêts de fuite dans le trading des crypto-monnaies Un arrêt de fuite est un type dynamique de commande stop-loss qui s'ajuste auto...

Puis-je utiliser un arrêt de fuite sur Bitstamp Futures?
Jul 25,2025 at 02:28am
Comprendre les arrêts de fuite dans le trading à terme des crypto-monnaies Un arrêt de fuite est un type dynamique de commande stop-loss qui s'aju...
Voir tous les articles
