Eine dApp mit NextJS erstellen
Dies ist eine Fortsetzung des Einstiegs-Leitfadens. Am Ende dieses Leitfadens sollten Sie in der Lage sein, eine einfache Nextjs-dApp zu erstellen, die mit den im Einstiegs-Leitfaden behandelten Smart Contracts des Token-Faucet interagiert.
Voraussetzungen
- Grundlegendes Verständnis von Typescript und Nextjs
- npm und npx auf Ihrem Rechner installiert
- Vertrautheit mit dem Tutorial-Projekt des Token Faucet im Einstiegs-Leitfaden.
- Installation der Extension Wallet
- Installation von Docker und Docker-Compose
Erstellen Sie ein dApp-Projekt mit dem Nextjs-Template
Dies erstellt ein neues Verzeichnis alephium-nextjs-tutorial
und
initialisiert ein Beispielprojekt mit NextJS in diesem Verzeichnis.
Starten Sie ein lokales Entwicklungssnetzwerk
Wechseln Sie in das Verzeichnis alephium-nextjs-tutorial/docker
und führen Sie folgendes aus:
Dies startet sowohl den Alephium Full Node als auch das Explorer-Backend im
devnet
. Das Explorer-Backend wird für die Funktion der Extension Wallet benötigt.
Jetzt können Sie Ihre Token-Faucet-Contracts kompilieren, testen und bereitstellen genau wie im Einstiegs-Leitfaden beschrieben.
Stellen Sie sicher, dass der Smart Contract bereitgestellt ist, bevor Sie mit dem nächsten Schritt fortfahren.
Interagieren Sie mit dem Token-Faucet über die Nextjs-dApp
Gehen Sie zum Stammverzeichnis des Projekts und führen Sie folgendes aus:
Öffnen Sie nun http://localhost:3000 mit Ihrem Browser, um die Token-Faucet-Anwendung zu sehen.
Wie oben dargestellt, zeigt die Token-Faucet-DApp einen Connect Alephium
Button, bevor Sie mit einer Wallet verbunden ist. Klicken Sie auf die Schaltfläche und wählen Sie die Option Extension Wallet
, um die Extension Wallet zu öffnen. WalletConnect
wird bald unterstützt.
Überprüfen Sie den Bestätigungsbildschirm der Extension Wallet und klicken Sie auf
Connect
. Die Token-Faucet-DApp wird mit der Extension Wallet verbunden.
Geben Sie die Anzahl der abzuhebenden Token ein (maximal 2) und klicken Sie auf die Schaltfläche Send Me Token
. Überprüfen Sie die Transaktionsdetails und klicken Sie auf Confirm
.
Herzlichen Glückwunsch, Sie haben gerade einige Token von dem Token-Faucet auf Ihr Konto übertragen!
Implementierung
Das Ziel des Nextjs Template - Projekts besteht darin zu zeigen, wie mit der Alephium-Blockchain von einer NextJS-Anwendung aus interagiert werden kann.
Die Authentifizierung kann in wenigen Zeilen mithilfe der @alephium/web3-react Komponenten erfolgen:
<AlephiumWalletProvider>
erstellt ein React Kontext-Objekt und gibt es durch den Komponentenbaum der Anwendung weiter.
Der Kontext enthält den SignerProvider,
der eine essentielle Informationsquelle ist, um mit der Alephium-Blockchain zu interagieren, wie z.B. das Signieren von Transaktionen, usw..
Nachdem der Benutzer mit der Wallet verbunden ist, können wir mit der Alephium-Blockchain interagieren, indem wir eine Reihe von React-Hooks verwenden, die von @alephium/web3-react bereitgestellt werden. Zum Beispiel können wir Informationen wie die aktuell verbundene Wallet, das Guthaben und den Transaktionsstatus abrufen.
Wenn ein Benutzer eine Transaktion durchführt, können Sie das Guthaben des Benutzers mit updateBalanceForTx
aktualisieren.
Hier ist ein einfaches Beispiel:
// Das `useBalance-Hook` gibt zwei Werte zurück:
// 1. balance: der aktuelle Kontostand
// 2. updateBalanceForTx: wird verwendet, um den Kontostand zu aktualisieren, wenn der Benutzer eine Transaktion durchführt.
const { balance, updateBalanceForTx } = useBalance()
const withdrawCallback = useCallback(async () => {
const result = await withdraw(...)
updateBalanceForTx(result.txId)
}, [updateBalanceForTx])
Für weitere Implementierungsdetails werfen Sie bitte einen Blick auf den Code.
Erfahren Sie mehr
- Das NextJS-Template ist auf dem Testnet bereitgestellt und unter https://alephium.github.io/nextjs-template verfügbar.
- Um mehr über das Ökosystem zu erfahren, besuchen Sie bitte die Übersicht des Ökosystems.
- Um mehr über das Web3 SDK zu erfahren, besuchen Sie bitte die Anleitung des Web3 SDK.
- Um mehr über die Ralph-Sprache zu erfahren, besuchen Sie bitte die Anleitung von Ralph.