Ich verwende Trüffel, Ganache und web3. Ich initialisiere die Benutzer-ID im Smart Contract, während ich den Smart Contract bereitstelle. Ab sofort läuft alles über den Account[0] von Ganache.
Jetzt möchte ich Funktionen wie: Wenn ## Heading ##I eine Benutzer-ID in Smart Contract erstelle, muss ihr ein eindeutiger Hash zugewiesen werden, der von der Blockchain angegeben wird.
Dafür habe ich keine Ahnung, wie wir neu erstellte Benutzer in das Konto von Ganache integrieren können.
Gibt es dafür eine andere Möglichkeit oder hat jemand einen Link dazu?
Sie benötigen lediglich eine Methode addUser(name)
, die einen neu erstellten Benutzer hinzufügt.
Der Hash kann dann berechnet werden, um keccak256()
einen bytes32
Hash zu generieren. Nun kommt es auf den Anwendungsfall an, wie Sie es speichern möchten. Vielleicht eine Struktur von Benutzerdetails oder eine Zuordnung mit uint
id => string
Hash.
Ab sofort läuft alles über den Account[0] von Ganache.
Ja, das ist Standard. Wenn Sie dies erwähnen, möchten Sie wahrscheinlich, dass nur account[0]
oder der Vertragsbereitsteller in der Lage ist, Benutzer hinzuzufügen. In diesem Fall müssen Sie nur einen require(msg.sender==admin)
Administrator haben, der während der Vertragsbereitstellung zugewiesen wird.
Bearbeiten
Ich habe Ihre Frage noch einmal gelesen. Wenn Sie denken, dass jeder Vertragsbenutzer direkt ein zugeordnetes Konto hat. Nein! Sie müssen mehr erklären, was Sie erreichen wollen.
Aktualisieren
Nach Ihrem Kommentar sieht es so aus, als müssten Sie dem Benutzer eine Adresse zuweisen. TestRPC/Ganache
funktioniert anders.
Dies sind die standardmäßig erstellten Konten unter IHRER Kontrolle. Sie können die öffentliche Adresse der Konten leicht preisgeben, aber das löst keinen Zweck. Warum? Weil der Benutzer seinen eigenen privaten Schlüssel haben sollte, um irgendeine Art von Transaktionen durchzuführen.
Dazu kommt es jetzt ganz darauf an. Die Nutzer sollen und sollen eigene Accounts anlegen und ihnen die öffentliche Adresse mitteilen. Diese Adresse soll nun beim Vertrag bleiben.
Aber wenn Sie dies trotzdem tun und als Administrator für den Benutzer dienen möchten, wählen Sie einfach ein Konto aus, sagen Sie account[5]
. Platzieren Sie es in einer lokalen Datenbank (optional), die account[5]
Benutzername zugewiesen ist 123user
. Erstellen Sie eine Zuordnung im Vertrag, rufen Sie die Funktion auf, um die Adresse zuzuweisen. Wenn Sie die Funktion aufrufen, übergeben Sie einfach die Adresse von account[5]
und den Benutzernamen. Ruhe alles folgt.
Ein besserer Weg wird sein, bip39
/ bip44
Wallets zu generieren.
Rija Soni
Rohan Sethi
Rija Soni
Rohan Sethi
web3
, rufen Sie die Vertragsmethode auf, die eine Zuordnung aktualisiertuint userId => address account
. Das ist es. Ruhe gibt es viel zu erklären.Rija Soni
Rohan Sethi
web3.eth.accounts[2]
und ID. Diese Methode wird also die Änderungen in der Festigkeit vornehmen.Rohan Sethi
Rija Soni
Rohan Sethi