top of page

Ihre erste Dapp mit Create ETH App

Autorenbild: blockliv3blockliv3

Ihre erste Dapp mit Create ETH App


Raul Ravindran

Eine der größten Herausforderungen bei der Einrichtung eines Blockchain-Projekts besteht darin, das Projekt richtig einzurichten. Create-eth-app ist ein Open-Source-Tool, mit dem Sie Ethereum-basierte Apps mit einem einzigen Befehl erstellen können. Es erspart Ihnen die Mühe, Boilerplate-Code zu erstellen, und bietet eine saubere Grundlage für Ihre Blockchain-App.


Wenn Sie eine kurze Zusammenfassung zum Einrichten einer Eth-App erstellen möchten, sehen Sie sich bitte unser YouTube-Video an:




Funktionen der Create ETH App

Ihre Umgebung verfügt über alles, was Sie zum Erstellen einer modernen Ethereum-betriebenen einseitigen React-App benötigen:


Reibungsloses Projektmanagement über Yarn Workspaces

Alles, was in Create React App enthalten ist: Unterstützung für React-, JSX-, ES6-, TypeScript- und Flow-Syntax

Vorlagenunterdiagramm, das die von einem ERC-20-Vertrag ausgegebenen Ereignisse indiziert

Minimalistische Struktur zur Verwaltung der Smart Contract ABIs und Adressen

Problemlose Updates für die oben genannten Tools mit einer einzigen Abhängigkeit

Installieren der Create Eth-App

Die Eth-App erstellen ist ein NPM-Paket, daher benötigen Sie mindestens Knoten v14. Sie können nvm (macOS/Linux) oder nvm-windows verwenden, um Node-Versionen zwischen verschiedenen Projekten zu wechseln. Das Projekt verwendet auch Garn, daher muss auch Garn installiert sein, da die Create Eth App auf Yarn Workspaces angewiesen ist, eine Funktion, die von Npm nicht unterstützt wird.


Um ein Projekt einzurichten, geben Sie den folgenden Befehl auf dem Terminal ein:


Garn erstellen eth-app my-eth-app

cd my-eth-app


Learn more about the yarn create command yarn create <starter-kit-package> available in Yarn 0.25+_

Once the project is installed the directory structure should look something like this:

my-eth-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
└── packages
    ├── contracts
       ├── README.json
       ├── package.json
       └── src
           ├── abis
              ├── erc20.json
              └── ownable.json
           ├── addresses.js
           └── index.js
    ├── react-app
       ├── README.md
       ├── package.json
       ├── node_modules
       ├── public      ├── favicon.ico
          ├── index.html
          └── manifest.json
       └── src
           ├── App.css
           ├── App.js
           ├── App.test.js
           ├── ethereumLogo.svg
           ├── index.css
           ├── index.js
           ├── serviceWorker.js
           └── setupTests.js
    └── subgraph
        ├── README.md
        ├── abis
           └── erc20.json
        ├── package.json
        ├── schema.graphql
        ├── src
           └── mappings
               ├── tokens.ts
               └── transfers.ts
        └── subgraph.yaml

create-eth-appsupports multiple frameworks: “react” and “vue”. You can run the following command:

 yarn create my-eth-app my-eth-app --framework react
 yarn create my-eth-app my-eth-app --framework vue

create-eth-app” also supports multiple established protocol templates.

  • React: aave, compound, default, kyber, maker, sablier-v1, synthetix, uniswap-v1, uniswap-v2

  • Vue: aave, compound, default, kyber, maker, sablier-v1, synthetix, uniswap-v1, uniswap-v2

To start the projet run

yarn react-app:start

Now out the box, we have two options to connect to our Ethereum blockchain:

  • WalletConnect

  • Metamask.io

Among other things the package has integration with Web3Modal once you click on connect wallet, you should see a popup to choose wallet providers:

Once you approve the request from your wallet, you should see you wallet address and an option to disconnect the wallet.

Understanding the packages

The packages folder contains 3 pacakges:

1. Contacts

This folder contains information about the contract your dapp connects to. This includes the contract address and contract ABI. Couple of dummy contracts are already included when you set up the project to help get you started.

In this example we will discuss a custom todo-app smart contract. To write and develop the smart contract we will use the REMIX IDE.

Please note that create-eth-app this is only for the frontend of app. If you need to create your own smart contract, you need to use another framework as well, like Hardhat or Truffle.

So lets create a new file called Todo.Sol


//Todo.sol


Pragma Solidität ^0.5.1;


// Einen Vertrag erstellen

Vertrag Todo{


// Definition einer Struktur für

// eine Aufgabe speichern

Aufgabe strukturieren

{

Zeichenfolgenaufgabe;

bool isDone;

}


Mapping (Adresse => Task[]) private Benutzer;


// Funktion zum Hinzufügen einer Aufgabe definieren

Funktion addTask(string calldata _task) extern

{

Benutzer[msg.sender].push(Task({

Aufgabe:_Aufgabe,

isDone:false

}));

}


// Definieren einer Funktion zum Abrufen von Details einer Aufgabe

Funktion getTask(uint _taskIndex) externe Ansicht gibt zurück (Aufgabenspeicher)

{

Aufgabenspeicheraufgabe = Users[msg.sender][_taskIndex];

Aufgabe zurückgeben;

}


// Definieren einer Funktion zum Aktualisieren des Status einer Aufgabe

Funktion updateStatus(uint256 _taskIndex,bool _status) extern

{

Users[msg.sender][_taskIndex].isDone = _status;

}


// Definieren einer Funktion zum Löschen einer Aufgabe

Funktion deleteTask(uint256 _taskIndex) extern

{

Benutzer löschen[msg.sender][_taskIndex];

}


// Definieren einer Funktion zum Abrufen der Aufgabenanzahl.

Funktion getTaskCount() externe Ansicht gibt zurück (uint256)

{

return Users[msg.sender].length;

}

}

Um die Anwendung zu kompilieren, wählen Sie den Vertrag aus und klicken Sie auf die Schaltfläche Todo.sol kompilieren unter der Registerkarte Kompilieren:




Sobald der Vertrag kompiliert ist, können Sie ihn mithilfe von Metamask im rinkby-Netzwerk bereitstellen.




Sehen Sie sich unser YouTube-Video an, um mehr über die Arbeit mit Solidity in der Remix-IDE zu erfahren




2. Reaktions-App

Der Ordner „react-app“ enthält den Frontend-Reaktionscode.


Wir werden eine ziemlich einfache React Todo-App schreiben:


import React, {useEffect, useState} from "react";

importiere getWeb3 aus "./utils/getWeb3";

Aufgaben aus „./abis/Tasks.json“ importieren;

importiere "./App.css";

const App = () => {

const [todoState, setTodoState] = useState({

web3: null,

Instanz: null,

Konto: "",

});

const [todos, setTodos] = useState(null);

const [inputString, setInputString] = useState("");

const [laden, setLoading] = useState (false);


const init = async () => {

const web3 = getWeb3();

const networkId = warte auf web3.eth.net.getId();

const deployedNetwork = Tasks.networks[networkId];


let _instance = new web3.eth.Contract(Tasks.abi, deployedNetwork.address);


const account = _instance.givenProvider.s selectedAddress;


setTodoState({ web3, Instanz: _Instanz, Konto });

wenn (_Instanz) {

const _task = warte auf _instance.methods.getTasks().call();

setTodos(_task);

}

};


useEffect(() => {

drin();

}, [Wird geladen]);


const onAddToDo = async (e) => {

e.preventDefault();

setLoading (wahr);

Warten Sie auf todoState.instance.methods

.setTasks(EingabeString)

.send({ from: todoState.account })

.then((res) => {

console.log("res :>> ", res);

setLoading (falsch);

});

};


return !TodoState && !TodoState.Vertrag ? (

<div>Web3, Konten und Vertrag werden geladen...</div>

) : (

<div className="App">

<h3>

Girokonto <br></br> {todoState.account}

</h3>


<form onSubmit={(e) => onAddToDo(e)}>

<Eingabe

label="Text einfügen"

onChange={(e) => setInputString(e.target.value)}

value={inputString}

/>

<button type="submit" disabled={!inputString.length}>

HINZUFÜGEN

</button>

</form>


<h3>Aufgaben</h3>

<ul>

{todos?.map((todo) => (

<li key={todo.id}>

<p>{todo}</p>

</li>

))}

</ul>

</div>

);

};


Standard-App exportieren;

Nach dem Aktualisieren sollten Sie eine ähnliche Ausgabe auf dem Bildschirm sehen:




3. Unterdiagramm

Schließlich enthält der Ordner „subgraph“ Code für einen GraphQL-Server, der Daten effizient aus der Ethereum-Blockchain abruft.


Die 2 großen Vorteile des Diagramms sind:

– Sie können auf einfache Weise erweiterte Abfragen durchführen

– und Sie können Subgraphen verwenden, die von anderen Personen erstellt wurden


Sie müssen den Teilgraphen nicht verwenden, er ist optional, aber es ist ein leistungsstarkes Werkzeug, das Ihnen zur Verfügung steht.


Fazit

Zusammenfassend lässt sich sagen, dass Create-eth-app ein großartiges Tool zum schnellen Bootstrapping eines Blockchain-Projekts ist, und Sie sollten es unbedingt in Ihre Toolbox aufnehmen.

1 Ansicht0 Kommentare

Aktuelle Beiträge

Alle ansehen

Wir stellen Walken vor

verfolgt Ihr Smartphone oder Wearable Ihre täglichen Schritte und erstellt eine faszinierende Statistik? Jenseits der Zahlen hat eine...

Neu bei Ultra

Neu bei Ultra Die fünfte Ausgabe von Ultra Notes enthält mehrere Updates und Neuigkeiten in Bezug auf Ultra, wie z. B. die neueste...

コメント


bottom of page