-
bitcoin $77998.274043 USD
0.31% -
ethereum $2280.309164 USD
0.69% -
tether $0.998587 USD
-0.02% -
bnb $707.120565 USD
0.48% -
xrp $1.248884 USD
-0.12% -
usd-coin $0.999584 USD
-0.01% -
solana $94.193636 USD
-1.17% -
tron $0.315161 USD
1.67% -
hyperliquid $85.602522 USD
-2.32% -
zcash $1264.350481 USD
1.86% -
dogecoin $0.075266 USD
-0.42% -
monero $607.413409 USD
0.84% -
unus-sed-leo $9.406815 USD
0.22% -
chainlink $11.310033 USD
-3.64% -
cardano $0.190499 USD
-1.30%
Wie testen Sie Ihren Soliditätsvertrag mit Hardhat?
Hardhat enables robust smart contract development with local testing, forking, debugging tools like console.log in Solidity, gas reporting, and precise event/time manipulation.
Jan 20, 2026 at 12:20 pm
Einrichten der Hardhat-Umgebung
1. Installieren Sie Node.js und npm, um die Kompatibilität mit der Toolchain von Hardhat sicherzustellen.
2. Führen Sie npm init -y aus, um ein neues Node.js-Projekt zu initialisieren.
3. Führen Sie npm install --save-dev hardhat aus, um Hardhat als Entwicklungsabhängigkeit hinzuzufügen.
4. Starten Sie den Hardhat-Setup-Assistenten mit npx hardhat und wählen Sie „Erstellen Sie eine leere hardhat.config.js“.
5. Erstellen Sie ein Verzeichnis „contracts/“ und platzieren Sie Ihre Solidity-Quelldatei – z. B. Token.sol – darin.
Testskripte in JavaScript oder TypeScript schreiben
1. Erstellen Sie einen test/ -Ordner und fügen Sie eine Testdatei wie Token.test.js hinzu.
2. Importieren Sie die Testdienstprogramme von Hardhat: const {expect} = require('@nomicfoundation/hardhat-chai-matchers');
3. Verwenden Sie die Blöcke write() und it(), um Testfälle logisch zu strukturieren.
4. Stellen Sie Verträge innerhalb von Tests überawait ethers.deployContract('Token') bereit, anstatt die Bytecodes manuell zu verarbeiten.
5. Interagieren Sie mit Vertragsmethoden mithilfe von „await token.transfer(address, amount)“ und bestätigen Sie Ergebnisse mit Chai-Matchern.
Ausführen von Tests in einem lokalen gegabelten Netzwerk
1. Konfigurieren Sie einen Fork in hardhat.config.js , indem Sie mithilfe seiner RPC-URL ein Netzwerk wie Ethereum Mainnet oder Sepolia angeben.
2. Starten Sie Hardhat Network mit aktiviertem Forking: npx hardhat node --fork https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY .
3. Schreiben Sie Tests, die mit bereitgestellten Mainnet-Verträgen – wie Uniswap V3-Pools – interagieren, indem Sie deren ABI abrufen und über ethers.getContractAt() an sie anhängen.
4. Simulieren Sie reale Bedingungen, einschließlich Gaspreisschwankungen und Manipulation von Blockzeitstempeln, mithilfe der integrierten Helfer von Hardhat Network.
5. Validieren Sie berechtigte Zugriffsmuster, indem Sie EOA-Adressen imitieren, die von Explorern wie Etherscan mithilfe von „await network.provider.request({ method: 'hardhat_impersonateAccount', params: [address] })“ abgerufen wurden.
Verwenden der integrierten Tools von Hardhat zum Debuggen
1. Fügen Sie console.log()- Anweisungen direkt in den Solidity-Code ein und kompilieren Sie sie mit aktiviertem Konsolenprotokoll-Plugin.
2. Führen Sie npx hardhat test --no-compile aus, um die Neukompilierung zu überspringen, wenn sich nur die Testlogik ändert.
3. Verwenden Sie hardhat-tracer , um EVM-Opcodes auf niedriger Ebene zu überprüfen, die während jeder Transaktion ausgeführt werden.
4. Nutzen Sie den Hardhat-Gas-Reporter , um den Gasverbrauch über Funktionsaufrufe hinweg zu messen und Ineffizienzen zu erkennen.
5. Aktivieren Sie Stack-Traces für zurückgesetzte Transaktionen, indem Sie throwOnTransactionFailures: true im Mocha-Abschnitt der Hardhat-Konfiguration festlegen.
Häufig gestellte Fragen
F: Kann ich von meinem Vertrag ausgegebene Ereignisse mit Hardhat testen? A: Ja. Verwenden Sie „await Expect(tx).to.emit(contract, 'Transfer').withArgs(owner, Receiver, amount), um Ereignisparameter zu überprüfen.
F: Wie teste ich Wiedereintrittsschwachstellen? A: Setzen Sie im Rahmen des Tests einen böswilligen Angreifervertrag ein, lösen Sie anfällige Funktionen aus und stellen Sie Gleichgewichtsinkonsistenzen oder Zustandsbeschädigungen fest.
F: Ist es möglich, zeitabhängige Logik wie Vesting-Pläne zu testen? A: Ja. Verwenden Sie „await network.provider.send('evm_increaseTime', [seconds])“ gefolgt von „await network.provider.send(‘evm_mine‘)“, um Blöcke voranzutreiben.
F: Was passiert, wenn mein Vertrag AccessControl von OpenZeppelin nutzt? A: Weisen Sie Rollen innerhalb von Tests zu, indem Sie „await accessControl.grantRole(ROLE_HASH, address)“ verwenden, bevor Sie eingeschränkte Funktionen aufrufen.
Haftungsausschluss:info@kdj.com
Die bereitgestellten Informationen stellen keine Handelsberatung dar. kdj.com übernimmt keine Verantwortung für Investitionen, die auf der Grundlage der in diesem Artikel bereitgestellten Informationen getätigt werden. Kryptowährungen sind sehr volatil und es wird dringend empfohlen, nach gründlicher Recherche mit Vorsicht zu investieren!
Wenn Sie glauben, dass der auf dieser Website verwendete Inhalt Ihr Urheberrecht verletzt, kontaktieren Sie uns bitte umgehend (info@kdj.com) und wir werden ihn umgehend löschen.
-
PIEVERSE Jetzt handeln$1.09
4.33%
-
币安人生 Jetzt handeln$0.5332
2.43%
-
TRX Jetzt handeln$0.3196
2.23%
-
JST Jetzt handeln$0.1406
1.87%
-
XAUt Jetzt handeln$3941.31
1.37%
-
PAXG Jetzt handeln$3955.09
1.25%
- XRP-Preisdiagrammanalyse von Eggag Crypto: Sind Sie bereit für die „größte Welle 3“?
- 2026-11-03 01:15:01
- Die Muttergesellschaft von Bed Bath & Beyond unterstützt den 350-Millionen-Dollar-SPAC-Deal von tZERO: Was New Yorker wissen müssen
- 2026-11-03 01:15:01
- Arbitrum verzeichnet einen Anstieg des Stablecoin-Transfervolumens, unterstützt durch ein neues Wachstumsprogramm
- 2026-11-03 00:55:01
- Trump, Nordkorea und der Binance-Raub: Ein Netz aus Geopolitik und digitaler Kriminalität
- 2026-11-03 00:55:01
- Binance nimmt die Auszahlungen für XRP, DOGE, BTC und ETH im Zuge der schrittweisen Wiedereröffnung nach einem Sicherheitsvorfall wieder auf
- 2026-11-03 01:00:02
- Kaspa-Redteam, SilverScript und der Angriffssimulator: Stärkung der Blockchain-Sicherheit im Big Apple
- 2026-11-03 01:00:02
Verwandtes Wissen
So berechnen Sie die Gesamtkosten für das Halten einer BTCUSDT-Futures-Position
Oct 26,2026 at 04:06am
Gesamtkostenkomponenten für BTCUSDT-Futures-Positionen 1. Die Gesamtkosten für das Halten einer BTCUSDT-Futures-Position umfassen sowohl explizite als...
So überwachen Sie die XRPUSDT-Finanzierungsraten und das offene Interesse gemeinsam
Oct 20,2026 at 06:39pm
Mechanik der Finanzierungsrate bei unbefristeten XRPUSDT-Verträgen 1. Die Finanzierungsraten für XRPUSDT Perpetual Swaps werden alle acht Stunden anha...
So legen Sie einen Break-Even-Stop-Loss für SOLUSDT Perpetual Futures fest
Oct 23,2026 at 09:34am
Verständnis der Break-Even-Stop-Loss-Mechanik 1. Ein Break-Even-Stop-Loss ist eine dynamische Order, die sich nach oben anpasst, wenn sich die Positio...
So verwenden Sie den Binance-Futures-Rechner für ETHUSDT-Trades
Oct 21,2026 at 02:00am
Verstehen der Schnittstelle des Binance-Futures-Rechners 1. Der Rechner ist direkt in die Binance-Futures-Handelsschnittstelle eingebettet und über di...
So überprüfen Sie den BTCUSDT-Markpreis vor einer Futures-Liquidation
Oct 26,2026 at 12:20pm
Markpreis in BTCUSDT-Futures verstehen 1. Der Markpreis ist ein berechneter Wert, der von Börsen verwendet wird, um unfaire Liquidationen bei volatile...
So passen Sie die Hebelwirkung eines unbefristeten TRUMPUSDT-Vertrags an
Oct 30,2026 at 10:19pm
Grundlegendes zur Mechanik des unbefristeten Vertrags von TRUMPUSDT 1. TRUMPUSDT ist ein thematischer, unbefristeter Terminkontrakt, der an mehreren T...
So berechnen Sie die Gesamtkosten für das Halten einer BTCUSDT-Futures-Position
Oct 26,2026 at 04:06am
Gesamtkostenkomponenten für BTCUSDT-Futures-Positionen 1. Die Gesamtkosten für das Halten einer BTCUSDT-Futures-Position umfassen sowohl explizite als...
So überwachen Sie die XRPUSDT-Finanzierungsraten und das offene Interesse gemeinsam
Oct 20,2026 at 06:39pm
Mechanik der Finanzierungsrate bei unbefristeten XRPUSDT-Verträgen 1. Die Finanzierungsraten für XRPUSDT Perpetual Swaps werden alle acht Stunden anha...
So legen Sie einen Break-Even-Stop-Loss für SOLUSDT Perpetual Futures fest
Oct 23,2026 at 09:34am
Verständnis der Break-Even-Stop-Loss-Mechanik 1. Ein Break-Even-Stop-Loss ist eine dynamische Order, die sich nach oben anpasst, wenn sich die Positio...
So verwenden Sie den Binance-Futures-Rechner für ETHUSDT-Trades
Oct 21,2026 at 02:00am
Verstehen der Schnittstelle des Binance-Futures-Rechners 1. Der Rechner ist direkt in die Binance-Futures-Handelsschnittstelle eingebettet und über di...
So überprüfen Sie den BTCUSDT-Markpreis vor einer Futures-Liquidation
Oct 26,2026 at 12:20pm
Markpreis in BTCUSDT-Futures verstehen 1. Der Markpreis ist ein berechneter Wert, der von Börsen verwendet wird, um unfaire Liquidationen bei volatile...
So passen Sie die Hebelwirkung eines unbefristeten TRUMPUSDT-Vertrags an
Oct 30,2026 at 10:19pm
Grundlegendes zur Mechanik des unbefristeten Vertrags von TRUMPUSDT 1. TRUMPUSDT ist ein thematischer, unbefristeter Terminkontrakt, der an mehreren T...
Alle Artikel ansehen














