-
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 schreibe ich Ihren ersten Smart Contract mit Solidität? (Schritt-für-Schritt-Anleitung)
Set up Node.js, Truffle, and Ganache; write an ERC-20 token using OpenZeppelin; compile, deploy locally, and test via Truffle console and JavaScript.
Jan 17, 2026 at 12:00 am
Einrichten der Entwicklungsumgebung
1. Installieren Sie Node.js und npm, um die für Solidity-Tools erforderlichen Abhängigkeiten zu verwalten.
2. Verwenden Sie npm, um Truffle weltweit zu installieren – ein weit verbreitetes Entwicklungsframework für Ethereum-basierte Smart Contracts.
3. Installieren Sie Ganache als persönliche Blockchain für lokale Tests; Es stellt Privatkonten mit vorfinanzierter ETH zur Verfügung.
4. Konfigurieren Sie ein neues Truffle-Projekt mit truffle init , um wichtige Verzeichnisse wie „contracts/“ , „migrations/“ und „test/“ zu generieren.
5. Überprüfen Sie die Installationsintegrität, indem Sie die Truffle-Version ausführen und die Kompatibilität mit dem Solidity-Compiler v0.8.x oder höher bestätigen.
Einen Basis-Token-Vertrag schreiben
1. Erstellen Sie eine neue Datei mit dem Namen MyToken.sol im Ordner „contracts/“ .
2. Deklarieren Sie das Pragma der Solidity-Version: pragma solidity ^0.8.20; um ein deterministisches Kompilierungsverhalten sicherzustellen.
3. Importieren Sie die ERC-20-Implementierung von OpenZeppelin: import '@openzeppelin/contracts/token/ERC-20/ERC-20.sol';
4. Definieren Sie die Vertragsvererbung: Vertrag MyToken ist ERC20 { ... } und initialisieren Sie Name, Symbol und Gesamtversorgung im Konstruktor.
5. Fügen Sie eine Mint-Funktion hinzu, die auf den Besitzer beschränkt ist, indem Sie den Modifikator „onlyOwner“ aus der AccessControl-Bibliothek von OpenZeppelin verwenden.
Kompilieren und Bereitstellen des Vertrags
1. Schreiben Sie ein Migrationsskript in migrations/2_deploy_contracts.js, um MyToken mit 1 Million Token zu instanziieren und bereitzustellen.
2. Führen Sie die Trüffelkompilierung aus, um ABI und Bytecode zu generieren. Stellen Sie sicher, dass keine Syntax- oder Versionskonfliktfehler auftreten.
3. Starten Sie Ganache und kopieren Sie die RPC-Server-URL (z. B. http://127.0.0.1:7545) in truffle-config.js im Entwicklungsnetzwerk .
4. Führen Sie truffle migrate --network development aus, um den Vertrag bereitzustellen und Transaktions-Hashes und Vertragsadressen aufzuzeichnen.
5. Bestätigen Sie den Erfolg der Bereitstellung, indem Sie das Transaktionsprotokoll von Ganache überprüfen und sicherstellen, dass die Vertragsadresse in der Konsolenausgabe erscheint.
Interaktion über die Truffle-Konsole
1. Starten Sie die mit Ganache verbundene Truffle-Konsole: truffle console --network development .
2. Rufen Sie die bereitgestellte Instanz ab: let instance = waiting MyToken.deployed();
3. Fragen Sie den Gesamtvorrat mit (await example.totalSupply()).toString() ab – erwarten Sie eine Ausgabe, die dem anfänglichen Mint-Wert entspricht.
4. Übertragen Sie Token zwischen Konten: Warten Sie auf example.transfer('0xAb8483F64d9C6d1EcF9b849Ae677dC320f55a1B5', '1000') .
5. Validieren Sie Saldoänderungen mit (await instance.balanceOf('0xAb8483F64d9C6d1EcF9b849Ae677dC320f55a1B5')).toString() .
Testen mit JavaScript
1. Erstellen Sie test/mytoken.js mit Testfällen im Mocha-Stil für die Kernfunktionalität.
2. Verwenden Sie Contract() , um den Testkontext zu definieren, und it() -Blöcke, um Verhalten wie Prägen, Übertragen und Ereignisemission zu bestätigen.
3. Stellen Sie nach dem Aufruf von transfer die korrekten Ereignisprotokolle mit Assert.equal(receipt.logs[0].event, 'Transfer') sicher.
4. Testen Sie die Umkehrungsbedingungen: Versuchen Sie, mehr als das Guthaben zu übertragen, und stellen Sie sicher, dass die Wiederherstellung mit dem Dienstprogramm ExpectRevert ausgelöst wird.
5. Führen Sie Tests mit Trüffeltest durch und bestätigen Sie, dass alle Behauptungen ohne Zeitüberschreitung oder Laufzeitausnahmen erfolgreich sind.
Häufig gestellte Fragen
F: Kann ich einen Solidity-Vertrag bereitstellen, ohne Truffle zu verwenden? A: Ja. Zu den Alternativen gehören Hardhat, Remix IDE oder direkte web3.js-Aufrufe mit kompiliertem Bytecode und ABI.
F: Was passiert, wenn ich das Schlüsselwort payable für eine Funktion vergesse, die ETH empfängt? A: Die Funktion macht jede Transaktion rückgängig, die versucht, ETH zu senden, was zu einer fehlgeschlagenen Ausführung und einem Gasverbrauch führt.
F: Ist es sicher , tx.origin für die Zugriffskontrolle zu verwenden? A: Nein. tx.origin kann über Phishing-Verträge manipuliert werden und darf msg.sender bei Berechtigungsprüfungen niemals ersetzen.
F: Wie überprüfe ich den Quellcode meines Vertrags auf Etherscan? A: Übermitteln Sie die genaue Solidity-Quelle, Compiler-Version, Optimierungseinstellungen und Konstruktorargumente über das Verifizierungsformular von Etherscan.
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%
- Trumps Wahl für den Fed-Vorsitzenden: Kevin Warsh tritt an die Spitze, Wall Street beobachtet
- 2026-01-30 22:10:06
- Der digitale Goldtraum von Bitcoin wird auf die Probe gestellt, während sich der Markt verändert und neue Kryptowährungen Feuer fangen
- 2026-01-30 22:10:06
- Binance verdoppelt sein Engagement: Der SAFU-Fonds wechselt vollständig zu Bitcoin, was tiefe Überzeugung signalisiert
- 2026-01-30 22:05:01
- Die Q4-Ergebnisse von Chevron zeigen trotz Umsatzeinbußen einen höheren Gewinn pro Aktie und blicken auf zukünftiges Wachstum
- 2026-01-30 22:05:01
- Der Mega-Move von Bitcoin im Jahr 2026: Die Volatilität in eine neue Ära steuern
- 2026-01-30 22:00:01
- Preisausblick für Cardano (ADA): Navigieren durch die Gräben eines potenziellen Bärenmarktes im Jahr 2026
- 2026-01-30 22:00:01
Verwandtes Wissen
Wie führe ich eine kettenübergreifende Nachricht mit einem LayerZero-Vertrag aus?
Jan 18,2026 at 01:19pm
Grundlegendes zur LayerZero-Architektur 1. LayerZero fungiert als leichtes, erlaubnisloses Interoperabilitätsprotokoll, das die Kommunikation zwischen...
Wie implementiert man EIP-712 für die sichere Signaturüberprüfung?
Jan 20,2026 at 10:20pm
EIP-712-Übersicht und Hauptzweck 1. EIP-712 definiert einen Standard für typisiertes strukturiertes Daten-Hashing und Signieren in Ethereum-Anwendunge...
Wie kann ich mich für Airdrops qualifizieren, indem ich mit neuen Verträgen interagiere?
Jan 24,2026 at 09:00pm
Anforderungen an die Vertragsinteraktion verstehen 1. Die meisten Airdrop-Kampagnen erfordern eine direkte Interaktion mit Smart Contracts, die auf un...
Wie überwacht man einen Smart Contract auf Sicherheitswarnungen?
Jan 21,2026 at 07:59am
On-Chain-Überwachungstools 1. Blockchain-Explorer wie Etherscan und Blockscout ermöglichen die Echtzeitprüfung von Vertragsbytecode, Transaktionsproto...
Wie kann ich einen Vertrag für automatisierte Zahlungen abschließen und finanzieren?
Jan 26,2026 at 08:59am
Grundlegendes zur Bereitstellung intelligenter Verträge 1. Entwickler müssen eine kompatible Blockchain-Plattform wie Ethereum, Polygon oder Arbitrum ...
Wie verwende ich OpenZeppelin-Verträge, um sichere dApps zu erstellen?
Jan 18,2026 at 11:19am
Grundlegendes zu den OpenZeppelin-Vertragsgrundlagen 1. OpenZeppelin Contracts ist eine Bibliothek wiederverwendbarer, von der Community geprüfter Sma...
Wie führe ich eine kettenübergreifende Nachricht mit einem LayerZero-Vertrag aus?
Jan 18,2026 at 01:19pm
Grundlegendes zur LayerZero-Architektur 1. LayerZero fungiert als leichtes, erlaubnisloses Interoperabilitätsprotokoll, das die Kommunikation zwischen...
Wie implementiert man EIP-712 für die sichere Signaturüberprüfung?
Jan 20,2026 at 10:20pm
EIP-712-Übersicht und Hauptzweck 1. EIP-712 definiert einen Standard für typisiertes strukturiertes Daten-Hashing und Signieren in Ethereum-Anwendunge...
Wie kann ich mich für Airdrops qualifizieren, indem ich mit neuen Verträgen interagiere?
Jan 24,2026 at 09:00pm
Anforderungen an die Vertragsinteraktion verstehen 1. Die meisten Airdrop-Kampagnen erfordern eine direkte Interaktion mit Smart Contracts, die auf un...
Wie überwacht man einen Smart Contract auf Sicherheitswarnungen?
Jan 21,2026 at 07:59am
On-Chain-Überwachungstools 1. Blockchain-Explorer wie Etherscan und Blockscout ermöglichen die Echtzeitprüfung von Vertragsbytecode, Transaktionsproto...
Wie kann ich einen Vertrag für automatisierte Zahlungen abschließen und finanzieren?
Jan 26,2026 at 08:59am
Grundlegendes zur Bereitstellung intelligenter Verträge 1. Entwickler müssen eine kompatible Blockchain-Plattform wie Ethereum, Polygon oder Arbitrum ...
Wie verwende ich OpenZeppelin-Verträge, um sichere dApps zu erstellen?
Jan 18,2026 at 11:19am
Grundlegendes zu den OpenZeppelin-Vertragsgrundlagen 1. OpenZeppelin Contracts ist eine Bibliothek wiederverwendbarer, von der Community geprüfter Sma...
Alle Artikel ansehen














