-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
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.
-
RAIN Jetzt handeln$0.007852
113.00%
-
PIPPIN Jetzt handeln$0.06097
51.96%
-
PARTI Jetzt handeln$0.1396
42.04%
-
WAVES Jetzt handeln$0.9141
41.69%
-
ARC Jetzt handeln$0.04302
35.73%
-
HONEY Jetzt handeln$0.01029
21.80%
- Bitcoin, eCash Fork und Airdrop Dynamics: Ein tiefer Einblick in die neuesten Kontroversen im Kryptobereich
- 2026-05-03 12:55:01
- Konsens 2026 Miami: Web3, Blockchain, Kryptowährung, NFTs, Metaverse, Konferenz, 5. Mai – Wo die Wall Street auf die digitale Grenze trifft
- 2026-05-02 12:45:01
- Die Fed hält die Zinsen stabil, was inmitten geopolitischer Spannungen einen Bitcoin-Preisverfall auslöst
- 2026-05-01 06:45:01
- Bitcoin-Miner elektrifizieren das Netz: Der Erwerb eines Gaskraftwerks in Ohio läutet eine neue Ära für digitales Gold ein
- 2026-05-01 00:45:01
- Der MEGA-Token von MegaETH erreicht den Big Apple: Er setzt neue Leistungsmaßstäbe für Echtzeit-Blockchain
- 2026-05-01 00:55:01
- Solanas rutschiger Abhang: Die Preisprognose deutet auf einen Widerstandsverlust und mögliche weitere Rückgänge hin
- 2026-05-01 06:45:01
Verwandtes Wissen
Wie wird die Margin-Anforderung für AVAX-Futures berechnet?
Jul 23,2026 at 03:40pm
AVAX-Futures-Margin-Struktur 1. Die AVAX-Futures-Marge besteht aus zwei unterschiedlichen Komponenten: der anfänglichen Marge und der Wartungsmarge. D...
Warum löst das ADA Contract Margin Ratio Warnungen aus?
Jul 22,2026 at 09:00am
Mechanik des ADA-Vertragsmargenverhältnisses 1. Der unbefristete ADA-Vertrag an großen Börsen verwendet ein dynamisches Margin-Verhältnis, das in Echt...
Was ist der ADAUSDT-Finanzierungssatz für unbefristete Verträge?
Jul 24,2026 at 08:19pm
Definition und Zweck des ADAUSDT-Finanzierungssatzes für unbefristete Verträge 1. Der ADAUSDT-Finanzierungssatz für unbefristete Verträge ist ein rege...
Was ist die Liquidationspreisformel für TON-Futures?
Jul 23,2026 at 09:19am
TON-Futures-Liquidationsmechanismus 1. Die Liquidation bei TON-Futures erfolgt, wenn der Margensaldo eines Händlers unter die von der Börse festgelegt...
Was ist der TONUSDT-Finanzierungssatz für unbefristete Verträge?
Jul 27,2026 at 02:39am
Definition und Kernmechanik 1. Der TONUSDT-Perpetual-Contract-Finanzierungssatz ist ein regelmäßiger Gebührenaustauschmechanismus, der ausschließlich ...
Wie wirkt sich die Hebelwirkung von SUI-Futures auf die Liquidation aus?
Jul 22,2026 at 09:59am
SUI-Futures-Margin-Mechaniken 1. Für SUI-Terminkontrakte an großen Derivatebörsen gelten gestaffelte Ersteinschussanforderungen basierend auf der Posi...
Wie wird die Margin-Anforderung für AVAX-Futures berechnet?
Jul 23,2026 at 03:40pm
AVAX-Futures-Margin-Struktur 1. Die AVAX-Futures-Marge besteht aus zwei unterschiedlichen Komponenten: der anfänglichen Marge und der Wartungsmarge. D...
Warum löst das ADA Contract Margin Ratio Warnungen aus?
Jul 22,2026 at 09:00am
Mechanik des ADA-Vertragsmargenverhältnisses 1. Der unbefristete ADA-Vertrag an großen Börsen verwendet ein dynamisches Margin-Verhältnis, das in Echt...
Was ist der ADAUSDT-Finanzierungssatz für unbefristete Verträge?
Jul 24,2026 at 08:19pm
Definition und Zweck des ADAUSDT-Finanzierungssatzes für unbefristete Verträge 1. Der ADAUSDT-Finanzierungssatz für unbefristete Verträge ist ein rege...
Was ist die Liquidationspreisformel für TON-Futures?
Jul 23,2026 at 09:19am
TON-Futures-Liquidationsmechanismus 1. Die Liquidation bei TON-Futures erfolgt, wenn der Margensaldo eines Händlers unter die von der Börse festgelegt...
Was ist der TONUSDT-Finanzierungssatz für unbefristete Verträge?
Jul 27,2026 at 02:39am
Definition und Kernmechanik 1. Der TONUSDT-Perpetual-Contract-Finanzierungssatz ist ein regelmäßiger Gebührenaustauschmechanismus, der ausschließlich ...
Wie wirkt sich die Hebelwirkung von SUI-Futures auf die Liquidation aus?
Jul 22,2026 at 09:59am
SUI-Futures-Margin-Mechaniken 1. Für SUI-Terminkontrakte an großen Derivatebörsen gelten gestaffelte Ersteinschussanforderungen basierend auf der Posi...
Alle Artikel ansehen














