... | ... | @@ -6,13 +6,145 @@ Willkommen zur Entwicklerdokumentation für DEXWeb, unserer innovativen dezentra |
|
|
|
|
|
## Inhaltsverzeichnis
|
|
|
|
|
|
1. [Projektstruktur](Projektstruktur)
|
|
|
2. [Technologie-Stack](#technologie-stack)
|
|
|
3. [Installation und Einrichtung](#installation-und-einrichtung)
|
|
|
4. [Smart Contracts](#smart-contracts)
|
|
|
5. [Frontend-Entwicklung](#frontend-entwicklung)
|
|
|
6. [Backend-Entwicklung](#backend-entwicklung)
|
|
|
7. [API-Referenz](#api-referenz)
|
|
|
8. [Testen](#testen)
|
|
|
|
|
|
--- |
|
|
\ No newline at end of file |
|
|
1. [Einführung](#einf%C3%BChrung)
|
|
|
2. [Projektstruktur](#projektstruktur)
|
|
|
3. [Technologie-Stack](#technologie-stack)
|
|
|
4. [Installation und Einrichtung](#installation-und-einrichtung)
|
|
|
5. [Smart Contracts](#smart-contracts)
|
|
|
6. [Frontend-Entwicklung](#frontend-entwicklung)
|
|
|
|
|
|
---
|
|
|
|
|
|
## Einführung
|
|
|
|
|
|
DEXWeb ist eine dezentralisierte Tauschbörse für Kryptowährungen, die Benutzern ermöglicht, sicher und direkt über den Webbrowser zu handeln. Die Plattform verwendet Smart Contracts auf der Polygon Blockchain, um einen vertrauenswürdigen und intermediärfreien Austausch zu gewährleisten.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Projektstruktur
|
|
|
|
|
|
Das DEXWeb-Projekt ist in mehrere Hauptkomponenten unterteilt:
|
|
|
|
|
|
- **Smart Contracts**: Enthält alle Solidity-Dateien und Migrationen.
|
|
|
- **Frontend**: Besteht aus der Benutzeroberfläche und den zugehörigen Assets.
|
|
|
- **Backend**: Umfasst Server-Logik, API-Endpunkte und Datenbankintegration.
|
|
|
- **Tests**: Beinhaltet Unit- und Integrationstests für Smart Contracts und Backend.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Technologie-Stack
|
|
|
|
|
|
DEXWeb verwendet die folgenden Technologien:
|
|
|
|
|
|
- **Blockchain**: Polygon (Ethereum-kompatibel)
|
|
|
- **Smart Contracts**: Solidity
|
|
|
- **Frontend**: React, Web3.js
|
|
|
- **Testen**:
|
|
|
|
|
|
---
|
|
|
|
|
|
## Installation und Einrichtung
|
|
|
|
|
|
### Voraussetzungen
|
|
|
|
|
|
Stelle sicher, dass die folgenden Software-Komponenten installiert sind:
|
|
|
|
|
|
- Node.js
|
|
|
- npm
|
|
|
- Yarn (global installiert)
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
1. Repository klonen:
|
|
|
|
|
|
```bash
|
|
|
git clone https://gitlab.bht-berlin.de/s88999/dexweb.git
|
|
|
cd dexweb/Frontend/Dexwebapp
|
|
|
```
|
|
|
2. Abhängigkeiten installieren:
|
|
|
|
|
|
```bash
|
|
|
bash npm install --global yarn
|
|
|
bash yarn install
|
|
|
```
|
|
|
|
|
|
### [Verwendung]()
|
|
|
|
|
|
Um das Projekt lokal auszuführen, folgen Sie diesen Schritten:
|
|
|
1. _Starten des lokalen Entwicklungsservers:_
|
|
|
|
|
|
bash yarn dev
|
|
|
2. Öffnen Sie Ihren Webbrowser und navigieren Sie zu , um die Anwendung zu verwenden.
|
|
|
3. _Wallet-Verbindung:_
|
|
|
- Klicken Sie auf "Verbinden" in der oberen rechten Ecke der Anwendung.
|
|
|
- Wählen Sie Ihre bevorzugte Wallet aus der Liste aus (z.B. MetaMask).
|
|
|
- Folgen Sie den Anweisungen, um sich mit Ihrer Wallet zu verbinden.
|
|
|
4. _Token swapen:_
|
|
|
- Wählen Sie das Token-Paar aus, das Sie tauschen möchten.
|
|
|
- Geben Sie den Betrag ein, den Sie tauschen möchten.
|
|
|
- Klicken Sie auf "Swapen", um den Tausch durchzuführen.
|
|
|
- Folgen Sie den Anweisungen in Ihrer Wallet, um den Tausch zu bestätigen.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Smart Contracts
|
|
|
|
|
|
### Übersicht
|
|
|
|
|
|
Die Haupt-Smart Contracts für DEXWeb befinden sich im `contracts` Verzeichnis und sind in Solidity geschrieben. Der primäre Vertrag ist `DEXWeb.sol`, der die Hauptlogik für den Austausch von Kryptowährungen enthält.
|
|
|
|
|
|
### DEXWeb.sol
|
|
|
|
|
|
Ein beispielhafter Vertrag könnte so aussehen:
|
|
|
|
|
|
```solidity
|
|
|
pragma solidity ^0.8.0;
|
|
|
|
|
|
contract DEXWeb {
|
|
|
// Contract state variables
|
|
|
|
|
|
constructor() {
|
|
|
// Initial setup
|
|
|
}
|
|
|
|
|
|
function deposit(uint256 amount) public {
|
|
|
// Deposit logic
|
|
|
}
|
|
|
|
|
|
function withdraw(uint256 amount) public {
|
|
|
// Withdraw logic
|
|
|
}
|
|
|
|
|
|
function trade(address token, uint256 amount) public {
|
|
|
// Trading logic
|
|
|
}
|
|
|
|
|
|
// Additional functions and modifiers
|
|
|
}
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## **Frontend-Entwicklung**
|
|
|
|
|
|
Das Frontend von DEXWeb ist mit React und Web3.js gebaut und befindet sich im **`frontend`** Verzeichnis.
|
|
|
|
|
|
### **Hauptkomponenten**
|
|
|
|
|
|
* **App.js**: Die Hauptkomponente, die die Anwendung rendert.
|
|
|
* **components/**: Enthält wiederverwendbare UI-Komponenten.
|
|
|
|
|
|
### Beispielcode für Web3-integration
|
|
|
|
|
|
```
|
|
|
import Web3 from 'web3';
|
|
|
|
|
|
const web3 = new Web3(Web3.givenProvider || 'http://localhost:8545');
|
|
|
|
|
|
const loadBlockchainData = async () => {
|
|
|
const accounts = await web3.eth.getAccounts();
|
|
|
const networkId = await web3.eth.net.getId();
|
|
|
// Load contract
|
|
|
const dexWeb = new web3.eth.Contract(DEXWeb.abi, DEXWeb.networks[networkId].address);
|
|
|
};
|
|
|
``` |
|
|
\ No newline at end of file |