-
bitcoin $78050.338849 USD
0.43% -
ethereum $2282.108043 USD
0.86% -
tether $0.998650 USD
-0.01% -
bnb $707.578884 USD
0.49% -
xrp $1.249183 USD
-0.08% -
usd-coin $0.999648 USD
0.00% -
solana $94.239496 USD
-1.07% -
tron $0.315202 USD
1.69% -
hyperliquid $85.625771 USD
-2.24% -
zcash $1265.406799 USD
2.05% -
dogecoin $0.075348 USD
-0.34% -
monero $607.342199 USD
0.82% -
unus-sed-leo $9.406793 USD
0.22% -
chainlink $11.319096 USD
-3.42% -
cardano $0.190551 USD
-1.24%
Comment tester un contrat intelligent avant de le déployer ? (En utilisant Hardhat & Truffle)
Set up local dev with Node.js, Hardhat/Truffle, write unit tests using Mocha/Chai or Truffle’s framework, run Slither/Solhint/MythX, fork mainnet, and never skip testing—even for ERC-20s.
Jan 26, 2026 at 05:20 am
Mise en place d'environnements de développement local
1. Installez Node.js et npm pour garantir la compatibilité avec les chaînes d'outils Hardhat et Truffle.
2. Initialisez un nouveau projet à l'aide de npm init et installez Hardhat via npm install --save-dev hardhat .
3. Pour Truffle, exécutez npm install -g truffle et créez un passe-partout avec truffle init .
4. Configurez hardhat.config.js pour spécifier les réseaux, les comptes, la version du compilateur Solidity et les clés API Etherscan pour vérification.
5. Configurez truffle-config.js avec les définitions de réseau correspondantes, y compris les points de terminaison Ganache ou Hardhat Network locaux.
Rédaction de tests unitaires complets
1. Utilisez des fichiers JavaScript ou TypeScript sous le répertoire test/ dans les projets Hardhat pour définir des cas de test avec Mocha et Chai.
2. Importez les artefacts de contrat à l'aide de wait ethers.getContractFactory et déployez les instances via déployer() avant chaque test.
3. Affirmez le comportement attendu en utilisant expect(...).to.equal(...) ou wait expect(...).to.be.revertedWith(...) pour les conditions d'erreur.
4. Dans Truffle, écrivez des tests dans test/*.js en utilisant les blocs contract() et affirmez ou attendez un événement à partir des OpenZeppelin Test Helpers.
5. Couvrez les cas extrêmes tels que les transferts de valeur nulle, les tentatives de réentrée et les accès non autorisés en vous moquant des rôles et des autorisations.
Exécution d'une analyse statique et de contrôles de sécurité
1. Intégrez Slither dans le pipeline CI en installant les dépendances Python et en exécutant slither . --solc-remaps '@openzeppelin=node_modules/@openzeppelin' .
2. Ajoutez Solhint pour détecter les anti-modèles stylistiques et liés à la sécurité à l'aide de npm install solhint --save-dev et configurez les règles dans .solhint.json .
3. Exécutez MythX via le plugin Hardhat @mythx/hardhat-mythx pour effectuer une analyse des vulnérabilités en chaîne pendant l'exécution du test.
4. Utilisez le plugin etherscan-verify pour confirmer que le code source correspond au bytecode avant le déploiement du réseau principal.
5. Auditez manuellement les modificateurs personnalisés et les hiérarchies d'héritage pour vérifier que onlyOwner , whenNotPaused ou des gardes similaires se comportent de manière cohérente sur tous les points d'entrée.
Simulation des conditions du réseau principal
1. Forkez le réseau principal Ethereum à l'aide de l'indicateur --fork de Hardhat pointant vers un point de terminaison Alchemy ou Infura pour répliquer l'état en direct.
2. Déployez des contrats sur le réseau forké et interagissez avec de vrais protocoles DeFi comme Uniswap ou Aave pour valider la logique d'intégration.
3. Utilisez la commande de console de Truffle avec --network mainnet-fork pour exécuter des appels ad hoc et inspecter les dispositions de stockage.
4. Simulez les pics de consommation de gaz en déclenchant des fonctions dans des scénarios de charge élevée et en vérifiant qu'aucun retour ne se produit en raison d'erreurs OOG.
5. Vérifiez la logique dépendante de l'horodatage en avançant les horodatages de bloc à l'aide des appels RPC evm_increaseTime et evm_mine .
Foire aux questions
Q : Puis-je réutiliser les fichiers de test Truffle dans un projet Hardhat ? Oui, la plupart des tests JavaScript de style Truffle peuvent s'exécuter dans Hardhat après des ajustements mineurs : remplacez artificials.require par ethers.getContractFactory et mettez à jour la syntaxe d'assertion pour correspondre aux attentes de Chai.
Q : Hardhat prend-il en charge les tests avec des soldes ETH réels ? Hardhat Network prend en charge la définition des soldes initiaux via la configuration des comptes ; vous pouvez attribuer 1 000 ETH à un compte test pour simuler des interactions financées sans robinets externes.
Q : Comment tester les événements émis par un contrat ? Dans Hardhat, utilisez expect(tx).to.emit(contract, 'EventName').withArgs(arg1, arg2) ; dans Truffle, utilisez expectEvent.inTransaction(tx, Contract, 'EventName', { arg1, arg2 }) .
Q : Est-il sécuritaire de sauter les tests si mon contrat est un simple ERC-20 ? Même les jetons conformes aux normes nécessitent la validation des restrictions de transfert, la pausabilité de la frappe et l'interaction avec les bourses ou les contrats de jalonnement. L'omission des tests risque de provoquer des bogues de verrouillage ou d'inflation irréversibles.
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.
-
PIEVERSE Échangez maintenant$1.09
4.33%
-
币安人生 Échangez maintenant$0.5332
2.43%
-
TRX Échangez maintenant$0.3196
2.23%
-
JST Échangez maintenant$0.1406
1.87%
-
XAUt Échangez maintenant$3941.31
1.37%
-
PAXG Échangez maintenant$3955.09
1.25%
- Analyse du graphique des prix XRP d'Egrag Crypto : êtes-vous prêt pour la « plus grande vague 3 » ?
- 2026-11-03 01:15:01
- La société mère de Bed Bath & Beyond soutient l'accord SPAC d'une valorisation de 350 millions de dollars de tZERO : ce que les New-Yorkais doivent savoir
- 2026-11-03 01:15:01
- Arbitrum constate une augmentation du volume de transfert de Stablecoin, soutenu par un nouveau programme de croissance
- 2026-11-03 00:55:01
- Trump, la Corée du Nord et le braquage de Binance : un réseau de géopolitique et de criminalité numérique
- 2026-11-03 00:55:01
- Binance reprend les retraits pour XRP, DOGE, BTC et ETH lors de la réouverture progressive après un incident de sécurité
- 2026-11-03 01:00:02
- Kaspa-Redteam, SilverScript et Attack Simulator : renforcer la sécurité de la blockchain dans la Big Apple
- 2026-11-03 01:00:02
Connaissances connexes
Comment calculer le coût total de détention d'une position à terme BTCUSDT
Oct 26,2026 at 04:06am
Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...
Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts
Oct 20,2026 at 06:39pm
Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...
Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT
Oct 23,2026 at 09:34am
Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...
Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT
Oct 21,2026 at 02:00am
Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...
Comment vérifier le prix BTCUSDT avant une liquidation à terme
Oct 26,2026 at 12:20pm
Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...
Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT
Oct 30,2026 at 10:19pm
Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...
Comment calculer le coût total de détention d'une position à terme BTCUSDT
Oct 26,2026 at 04:06am
Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...
Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts
Oct 20,2026 at 06:39pm
Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...
Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT
Oct 23,2026 at 09:34am
Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...
Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT
Oct 21,2026 at 02:00am
Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...
Comment vérifier le prix BTCUSDT avant une liquidation à terme
Oct 26,2026 at 12:20pm
Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...
Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT
Oct 30,2026 at 10:19pm
Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...
Voir tous les articles














