Ethers und Hardhat: Ein umfassender Leitfaden für Ethereum-Entwicklung

In der Welt der Blockchain-Technologie sind Ethereum und Hardhat zwei Begriffe, die zunehmend an Bedeutung gewinnen. Ethereum, die führende Plattform für Smart Contracts, ermöglicht Entwicklern, dezentrale Anwendungen (dApps) zu erstellen, die durch Verträge auf der Blockchain betrieben werden. Hardhat hingegen ist ein Entwicklungswerkzeug, das speziell für Ethereum-Entwickler entwickelt wurde, um die Entwicklung, das Testen und das Bereitstellen von Smart Contracts zu vereinfachen. In diesem umfassenden Leitfaden werden wir tief in die Funktionen und Möglichkeiten von Hardhat eintauchen und erkunden, wie es sich mit der Ethers.js-Bibliothek integrieren lässt, um leistungsstarke und effiziente Ethereum-basierte Anwendungen zu erstellen.

1. Einführung in Hardhat

Hardhat ist ein flexibles Entwicklungswerkzeug für Ethereum, das Entwicklern eine Vielzahl von Funktionen bietet, um den gesamten Entwicklungszyklus von Smart Contracts zu unterstützen. Es wurde entwickelt, um die Entwicklungsumgebung zu verbessern, indem es eine einfache Möglichkeit bietet, Smart Contracts zu testen, zu debuggen und bereitzustellen. Zu den Hauptfunktionen von Hardhat gehören:

  • Einfache Einrichtung und Konfiguration: Hardhat ermöglicht eine einfache Konfiguration durch eine benutzerfreundliche hardhat.config.js-Datei, die es Entwicklern ermöglicht, verschiedene Netzwerke, Plugins und andere Einstellungen zu definieren.
  • Integration mit Ethers.js: Hardhat kann nahtlos mit Ethers.js integriert werden, um eine effiziente Interaktion mit Ethereum-Smart Contracts zu ermöglichen. Dies erleichtert die Erstellung von Skripten für das Testen und Bereitstellen von Verträgen.
  • Erweiterbare Architektur: Hardhat unterstützt eine Vielzahl von Plugins, die die Funktionalität erweitern und an spezifische Entwicklungsbedürfnisse angepasst werden können.

2. Einführung in Ethers.js

Ethers.js ist eine leistungsstarke Bibliothek für JavaScript, die Entwicklern hilft, mit der Ethereum-Blockchain zu interagieren. Sie bietet eine einfache und sichere Möglichkeit, Smart Contracts zu erstellen, zu verwalten und mit ihnen zu interagieren. Einige der Hauptmerkmale von Ethers.js sind:

  • Leichtgewichtige und schnelle API: Ethers.js ist bekannt für seine Geschwindigkeit und Effizienz, was es zu einer bevorzugten Wahl für Entwickler macht, die eine performante Blockchain-Interaktion benötigen.
  • Einfache Nutzung und Dokumentation: Die Bibliothek ist gut dokumentiert und bietet eine intuitive API, die es Entwicklern erleichtert, Ethereum-basierte Anwendungen zu erstellen.
  • Integrierte Wallet-Verwaltung: Ethers.js ermöglicht die Verwaltung von Wallets und die Durchführung von Transaktionen direkt aus der Anwendung heraus.

3. Einrichtung von Hardhat und Ethers.js

Um Hardhat und Ethers.js in einem Ethereum-Projekt einzurichten, müssen zunächst einige Schritte durchgeführt werden:

  1. Installation von Hardhat:

    Um Hardhat zu installieren, öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

    bash
    npm install --save-dev hardhat

    Nachdem Hardhat installiert ist, können Sie ein neues Hardhat-Projekt initialisieren, indem Sie den folgenden Befehl ausführen:

    bash
    npx hardhat

    Dies führt Sie durch einen Einrichtungsprozess, bei dem Sie einige grundlegende Informationen zu Ihrem Projekt angeben müssen.

  2. Installation von Ethers.js:

    Ethers.js kann zusammen mit Hardhat installiert werden, indem Sie den folgenden Befehl ausführen:

    bash
    npm install --save ethers
  3. Konfiguration von Hardhat:

    Die Hardhat-Konfigurationsdatei hardhat.config.js muss eingerichtet werden, um Ethers.js zu integrieren und die benötigten Netzwerke zu konfigurieren. Eine grundlegende Konfiguration könnte wie folgt aussehen:

    javascript
    require('@nomiclabs/hardhat-ethers'); module.exports = { solidity: "0.8.4", networks: { hardhat: {}, ropsten: { url: `https://ropsten.infura.io/v3/YOUR_INFURA_PROJECT_ID`, accounts: [`0x${YOUR_PRIVATE_KEY}`] } } };

4. Erstellen und Testen von Smart Contracts mit Hardhat und Ethers.js

Um mit der Entwicklung von Smart Contracts zu beginnen, müssen Sie zuerst einen Vertrag erstellen und testen. Im Folgenden wird der Prozess beschrieben:

  1. Erstellen eines Smart Contracts:

    Erstellen Sie eine neue Datei im Verzeichnis contracts Ihres Hardhat-Projekts, z.B. SimpleStorage.sol:

    solidity
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; contract SimpleStorage { uint256 private number; function set(uint256 _number) public { number = _number; } function get() public view returns (uint256) { return number; } }
  2. Erstellen eines Tests für den Smart Contract:

    Im Verzeichnis test können Sie Testskripte erstellen, um sicherzustellen, dass Ihr Smart Contract wie erwartet funktioniert. Erstellen Sie eine Datei wie SimpleStorage.js:

    javascript
    const { expect } = require("chai"); describe("SimpleStorage", function () { it("Should return the new number once it's changed", async function () { const SimpleStorage = await ethers.getContractFactory("SimpleStorage"); const simpleStorage = await SimpleStorage.deploy(); await simpleStorage.deployed(); await simpleStorage.set(42); expect(await simpleStorage.get()).to.equal(42); }); });
  3. Testen des Smart Contracts:

    Führen Sie Ihre Tests mit Hardhat aus, indem Sie den folgenden Befehl ausführen:

    bash
    npx hardhat test

5. Bereitstellung von Smart Contracts

Um einen Smart Contract auf das Ethereum-Netzwerk bereitzustellen, müssen Sie ein Bereitstellungsskript erstellen. Fügen Sie dazu eine neue Datei im Verzeichnis scripts hinzu, z.B. deploy.js:

javascript
async function main() { const [deployer] = await ethers.getSigners(); console.log("Deploying contracts with the account:", deployer.address); const SimpleStorage = await ethers.getContractFactory("SimpleStorage"); const simpleStorage = await SimpleStorage.deploy(); console.log("SimpleStorage contract deployed to:", simpleStorage.address); } main().catch((error) => { console.error(error); process.exitCode = 1; });

Führen Sie das Bereitstellungsskript aus, um den Vertrag auf das Netzwerk hochzuladen:

bash
npx hardhat run scripts/deploy.js --network ropsten

6. Integration von Ethers.js in Ihre dApp

Sobald Ihr Smart Contract bereitgestellt ist, können Sie Ethers.js verwenden, um in Ihrer dApp mit dem Vertrag zu interagieren. Erstellen Sie eine einfache HTML-Datei, um eine Benutzeroberfläche zu bieten:

html
html> <html> <head> <title>Simple Storagetitle> head> <body> <h1>Simple Storage dApph1> <input id="numberInput" type="number" placeholder="Enter a number" /> <button id="setButton">Set Numberbutton> <p id="storedNumber">Stored Number: p> <script src="https://cdn.jsdelivr.net/npm/ethers/dist/ethers.min.js">script> <script> async function main() { const provider = new ethers.providers.Web3Provider(window.ethereum); await provider.send("eth_requestAccounts", []); const signer = provider.getSigner(); const contractAddress = "YOUR_CONTRACT_ADDRESS"; const abi = [ "function set(uint256 _number) public", "function get() public view returns (uint256)" ]; const contract = new ethers.Contract(contractAddress, abi, signer); document.getElementById("setButton").addEventListener("click", async () => { const number = document.getElementById("numberInput").value; await contract.set(number); const storedNumber = await contract.get(); document.getElementById("storedNumber").innerText = "Stored Number: " + storedNumber; }); } main(); script> body> html>

7. Fazit

Die Kombination von Hardhat und Ethers.js bietet Entwicklern ein leistungsstarkes und flexibles Werkzeugset für die Entwicklung von Ethereum-basierten Anwendungen. Hardhat erleichtert die Entwicklung und das Testen von Smart Contracts durch seine benutzerfreundliche Umgebung und umfangreiche Plugin-Unterstützung, während Ethers.js eine effiziente und leistungsstarke Möglichkeit bietet, mit der Ethereum-Blockchain zu interagieren. Durch die Kombination dieser beiden Werkzeuge können Entwickler leistungsstarke, sichere und benutzerfreundliche dApps erstellen.

Beliebte Kommentare
    Derzeit keine Kommentare
Kommentar

0