Moonbeam
July 19, 2021

Interaktion mit Moonbeam bei der Verwendung von Remix

Den gesamten Code für dieses Tutorial finden Sie auf der Seite mit den Code-Snippets

Einführung

Remix ist eine der am häufigsten verwendeten Entwicklungsumgebungen für Smart Contracts auf Ethereum. Angesichts der Ethereum-Kompatibilitätsfunktionen von Moonbeam, kann Remix direkt mit einem Moonbeam-development node oder dem Moonbase Alpha TestNet verwendet werden.

Dieser Leitfaden führt durch den Prozess der Erstellung und Bereitstellung (creating and deploying) eines Solidity-basierten Smart Contracts auf einem Moonbeam-development Node mithilfe der Remix-IDE.

Hinweis Dieses Tutorial wurde mit dem Tutorial-v7-tag erstellt, das auf der Version v0.7.0 von Moonbase Alpha basiert. Die Moonbeam-Plattform und die Frontier-Komponenten, auf die sie für die Substratbasierte Ethereumkompatibilität angewiesen ist, befinden sich noch in sehr aktiver Entwicklung.

In dieser Anleitung wird davon ausgegangen, dass Sie einen lokalen Moonbeam Node haben, der im --dev Modus ausgeführt wird, und dass Sie MetaMask haben, der für die Verwendung dieses lokalen Knotens konfiguriert ist. Anweisungen zur Ausführung eines lokalen Moonbeam-Node finden Sie hier, und Anweisungen zur Verbindung von MetaMask hier.

Voraussetzungen prüfen

Wenn Sie die obigen Anleitungen befolgt haben, sollten Sie einen lokalen Moonbeam Node haben, der mit der Erstellung von Blöcken beginnt, sobald Transaktionen eintreffen:

Und Sie sollten eine MetaMask Installation haben, die mit Ihrem lokalen Moonbeam dev Node mit mindestens einem Konto verbunden ist, das ein Guthaben hat. Es sollte ungefähr so aussehen (erweiterte Ansicht):

Hinweis Stellen Sie sicher, dass Sie mit Ihrem Moonbeam Node verbunden sind und nicht mit einem anderen Netzwerk!

Erste Schritte mit Remix

Starten wir nun Remix, um erweiterte Funktionen in Moonbeam zu nutzen.

Starten Sie Remix, indem Sie zu https://remix.ethereum.org/ navigieren. Wählen Sie im Hauptbildschirm unter Environments Solidity aus, um Remix für die Solidity-Entwicklung zu konfigurieren, und navigieren Sie dann zur Ansicht File Explorers:

Wir werden eine neue Datei erstellen, um den Solidity Smart Contract zu speichern. Klicken Sie unter File Explorers auf die Schaltfläche + und geben Sie im Popup-Dialog den Namen "MyToken.sol" ein:

Als Nächstes fügen wir den folgenden Smart Contract in die angezeigte editor tab ein:

pragma solidity ^0.7.0;

import 'https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.2.0-solc-0.7/contracts/token/ERC20/ERC20.sol';

// This ERC-20 contract mints the specified amount of tokens to the contract creator.
contract MyToken is ERC20 {
  constructor(uint256 initialSupply) ERC20("MyToken", "MYTOK") {
    _mint(msg.sender, initialSupply);
  }
}

Dies ist ein einfacher ERC-20-contract, der auf dem aktuellen Open Zeppelin ERC-20-Template basiert. Es erstellt MyToken mit dem Symbol MYTOK und prägt (mints) das Ganze initial supply an den Contractersteller (contract creator).

Nachdem Sie den Contract in den Editor eingefügt haben, soll dieser so aussehen:

Navigieren Sie nun zur Kompilierungsseite und drücken Sie die Schaltfläche „MyToken.sol":

Sie werden sehen, dass Remix alle Open Zeppelin-Abhängigkeiten herunterlädt und den Vertrag (contract) kompiliert.

Bereitstellung (Deploying) eines Vertrags (contracts) in Moonbeam mit Remix

Jetzt können wir den Contract bereitstellen (contract deploy), indem wir zu Deployment navigieren. Sie müssen das oberste Dropdown-Menü „Environment“ von „JavaScript VM“ auf „Injected Web3“ ändern. Dies weist Remix an, den injizierten MetaMask-Provider zu verwenden, der ihn auf Ihren Moonbeam-development node verweist. Wenn Sie dies mit dem Moonbase Alpha TestNet versuchen wollten, müssten Sie MetaMask mit dem TestNet statt mit Ihrem lokalen development node verbinden.

Sobald Sie "Injected Web3" auswählen, werden Sie aufgefordert, Remix zu erlauben, sich mit Ihrem MetaMask-Konto zu verbinden.

Drücken Sie in der Metamaske auf „Next“, damit Remix auf das ausgewählte Konto zugreifen kann.

Zurück zu Remix. Sie sollen sehen, dass das Konto, das Sie für die Bereitstellung (deployment) verwenden möchten, jetzt von MetaMask verwaltet wird. Geben Sie als initial supply 8 Millionen Token an. Da dieser Contract den Standardwert von 18 Dezimalstellen verwendet, ist der in das Feld einzugebende Wert 8000000000000000000000000.

Nachdem Sie diesen Wert eingegeben haben, wählen Sie "Deploy".

Sie werden in MetaMask aufgefordert, die Transaktion zur Contract Bereitstellung (deployment) zu bestätigen.

Hinweis Wenn Sie Probleme bei der Bereitstellung eines bestimmten Contracts haben, können Sie versuchen, das Gaslimit manuell zu erhöhen. Dies können Sie unter Einstellungen -> Erweitert -> Erweiterte Gassteuerung = EIN (Settings -> Advanced -> Advanced Gas Controls = ON) tun.

Nachdem Sie auf Bestätigen geklickt haben und die Bereitstellung abgeschlossen ist, wird die Transaktion in MetaMask aufgelistet. Der Contract wird in Remix unter Deployed Contracts angezeigt.

Sobald der Contract bereitgestellt wurde, können Sie mit ihm, aus Remix heraus, interagieren.

Klicken Sie auf den Pfeil unter "Deployed Contracts". Wenn Sie auf name, symbol und totalSupply klicken, sollen „MyToken“, „MYTOK“ bzw. „800000000000000000000000“ zurückgegeben werden. Wenn Sie die Adresse, von der aus Sie den Contract bereitgestellt haben, kopieren und in das Feld balanceOf einfügen, sollen Sie das gesamte Guthaben , das diesem Benutzer gehört, sehen. Kopieren Sie die Contractadresse, indem Sie auf die Schaltfläche neben contract name und address klicken.

Interaktion mit einem Moonbeam-basierten ERC-20 aus MetaMask

Öffnen Sie MetaMask, um die neu bereitgestellten ERC-20-Token hinzuzufügen. Stellen Sie vorher sicher, dass Sie die Contractadresse von Remix kopiert haben. Zurück in MetaMask. Klicken Sie wie unten gezeigt auf „Add Token“. Stellen Sie sicher, dass Sie sich in dem Account befinden, das den Tokencontract bereitgestellt hat.

Fügen Sie die kopierte Contraktadresse in das Feld „Custom Token“ ein. Die Felder „Token-Symbol“ und „Decimals of Precision“ sollten automatisch ausgefüllt werden.

Nachdem Sie auf „Next“ geklickt haben, müssen Sie bestätigen, dass Sie diese Token Ihrem MetaMask-Konto hinzufügen möchten. Klicken Sie auf „Add Token“ und Sie sollten 8 Millionen MyTokens in MetaMask sehen:

Jetzt können wir einige dieser ERC-20-Token senden. Klicken Sie auf „send“, um den Transfer von 500 MyTokens zu beginen und das Zielkonto auszuwählen.

Nachdem Sie auf "next" geklickt haben, werden Sie aufgefordert die Transaktion zu bestätigen (ähnlich wie unten abgebildet).

Klicken Sie auf „Confirm“ und nach Abschluss der Transaktion sehen Sie eine Bestätigung und eine Reduzierung des MyToken-Kontostands in MetaMask:

Wenn Sie Eigentümer des Kontos sind, an das Sie die Token gesendet haben, können Sie das Token-Asset hinzufügen, um zu überprüfen, ob die Token eingegangen sind.

Original (engl.)