Ich möchte eine Liste der Münzinhaber für eine Münze

Ich suche nach einem Befehl in Solidity (oder einer anderen API), der es mir ermöglicht, die Brieftaschen mit Guthaben von mehr als x Münzen anzuzeigen.

Weiß jemand wie das geht?

Vielen Dank

Antworten (1)

Ich nehme an, Sie meinen alle Konten mit Guthaben im Ethereum-Mainnet.

Das Scannen aller Konten mit Ihrem benutzerdefinierten Code ist möglich, aber ein ziemlicher Aufwand zum Programmieren und Ausführen.

Ich würde empfehlen, sich die Kontenliste von Etherscan und ihre API anzusehen .

UPDATE (basierend auf der Klärung der Frage): Wenn Sie alle Token-Inhaber in Ihrem Token-Vertrag durchlaufen möchten. Ich gehe davon aus, dass Sie Salden nur in einem Mapping speichern, damit Sie nicht über alle Salden iterieren können (Solidity Mappings sind nicht iterierbar).

Sie könnten ein dynamisches Array mit allen Adressen mit Guthaben verwalten, aber das würde eine Menge zusätzliches Benzin für jede Übertragung usw. kosten. Noch wichtiger, wenn Sie eine Belohnung wünschen, müssten Sie ein Array unbekannter Größe durchlaufen, was dazu führen könnte, dass es überläuft die Blockgasgrenze. Sie könnten die Belohnung in Stapeln machen, aber es wird insgesamt zu kompliziert.

Ich würde stattdessen lieber ein Anspruchsmuster verwenden. Das heißt, Sie würden die Belohnungen beibehalten und Ihre Token-Inhaber könnten ihre eigene Belohnung nacheinander beanspruchen, indem sie den Claim Reward tx selbst aufrufen.

Ich möchte mir alle Guthaben für meinen eigenen Token (ERC20) ansehen ... Ich muss sehen, wer einen bestimmten Betrag hält, um sie zu belohnen.
Danke für dein Update. Weitere Frage - wie macht diese Seite das? etherscan.io/token/Indorse#balances Hier haben sie alle Inhaber absteigend sortiert. Wenn ich das intern in meinem Vertrag machen könnte, wäre das unglaublich.