Ich muss mehr als 1000 Ethereum-Adressen haben, die tatsächlich verwendet wurden, um kleine Mengen verschiedener ERC20-Token zu speichern. Ich möchte all diese Krypto-Assets in all diesen über 1000 Wallets an eine einzige Adresse verschieben.
Wenn ich ein Pool-Konto mit einem einzigen privaten Schlüssel erstellen könnte, wäre dies die beste Methode, aber basierend auf meinem derzeitigen Verständnis von Ethereum glaube ich, dass dies mit Ethereum nicht möglich ist. Jede Adresse ist einem anderen privaten Schlüssel zugeordnet.
Beachten Sie nun, dass all diese über 1000 Konten kein Ethereum enthalten. Um also ERC20-Token auf ein gemeinsames Konto zu übertragen, muss ich ETH zunächst auf diese über 1000 Konten für den Gaspreis für die ERC20-Token-Übertragung für jedes dieser Konten übertragen.
Das heißt, ich muss die ETH auf das Gaskonto überweisen und dann den ERC20-Token auf das Poolkonto mit der kleinen eingezahlten ETH-Menge überweisen.
Obwohl es funktionieren könnte, scheint es sehr kompliziert zu sein und viel ETH wird unnötigerweise für Benzin verschwendet, während ich immer noch die Kontrolle über all diese über 1000 Konten habe.
Gibt es einen besseren oder einfacheren Weg für mich? Wie Börsen tun? Wie kann ich intern ohne Spritpreis umsteigen? Oder gibt es einen Weg (sogar einen komplizierten Weg), dass ich ein Poolkonto mit einem einzigen privaten Schlüssel mit mehreren Adressen haben kann?
Kann jemand helfen?
Vielen Dank,
Obwohl es funktionieren könnte, scheint es sehr kompliziert zu sein und viel ETH wird unnötigerweise für Gas verschwendet, während ich immer noch die Kontrolle über all diese über 1000 Konten habe.
Ich denke, Sie haben sich da größtenteils selbst geredet. Wenn es sich um Standard-ERC20-Verträge ohne Backdoors handelt, wie ich vermute, dann führt kein Weg an der Einschränkung vorbei, dass eine Transfertransaktion vom Token-Inhaber unterschrieben werden muss.
Wenn dies nicht der Fall wäre, dann wäre es für einen cleveren Vertrag möglich, aus den Wallets anderer Leute (ETH oder Tokens) auszugeben. Das würde zu einem ziemlich schnellen und ungeordneten Zusammenbruch von fast allem führen.
Sie haben die Schlüssel, also können Sie unterschreiben. Die Tatsache, dass die Konten keine ETH haben, um Gas zu bezahlen, ist etwas, worüber man nachdenken sollte, bevor man Vermögenswerte dorthin schickt. Über die Kosten würde ich mir auch Gedanken machen. Die Gaskosten für diese Transaktionen sind skaleninvariant, sodass Sie alles 1000-mal teurer machen. Sie haben den Zweck nicht erwähnt , daher ist es schwer zu sagen, ob es einen idealeren Weg gibt, das Problem anzugehen.
Ich hoffe es hilft.
Wenn Sie 1000 externe Konten verwenden, ist dies nicht möglich.
Die einzige Möglichkeit, eine separate Adresse für die Token-Übertragungskosten zu bezahlen, besteht darin, dass jede Benutzer-Brieftasche ein Vertrag ist und der Vertrag ERC20-Standards unterstützt und die Übertragungsfunktion aufrufen kann.
Dies hat jedoch die zusätzlichen Kosten für die Bereitstellung von 1000 Verträgen als Benutzeradressen zur Folge, die die Kosten für das einfache Senden und anschließende Sweeping von Ether übersteigen können.
Sie müssen jede dieser über 1000 Adressen dazu bringen, ihr Token an die einzige endgültige Adresse zu übertragen, und ja, Sie müssen jeder von ihnen etwas Gas schicken, um sie vorher auszugeben.
Dies liegt daran, dass die ERC20-Übertragungsfunktion den msg.sender als versteckten Parameter verwendet, um zu verstehen, ob das Übertragungsrecht vorhanden ist.
Ich meine: Die ERC20-Übertragung ist vom Typ "transfer (_to, _value)" und geht implizit davon aus, dass das _from-Konto dasjenige ist, das msg.sender gehört.
Dieser Anruf braucht Gas!
Es könnte eine andere Situation sein, wenn im ERC20-Standard ein "Transfer (_from, _to, _value)" vorhanden wäre; aber die einzige Funktion vom Typ "_to, _from, _value" im ERC20-Standard ist die berühmte "transferFrom(_from, _to, _value)", die leider nicht funktioniert, wenn keine Genehmigung für die "_from, _to"-Übertragung erteilt wurde zuvor über die Genehmigen-Funktion.
Das heißt, Sie sollten vorher "approve(_to, _value)" aufrufen, was genau den gleichen Mechanismus der impliziten msg.sender=tokenowner-Definition implementiert.
Und das braucht auch Gas, weniger oder mehr das gleiche Gas wie der Transferanruf.
Das tut mir leid.
Ich kann Ihnen vorschlagen, https://ethersweep.com zu verwenden . Sie können das ETH-Guthaben einfach zusammen mit den Geldern aus allen umgewandelten ERC20-Token an die Ausgangsadresse überweisen. Sie haben auch die Möglichkeit, alle nicht unterstützten Token zu behalten (obwohl etwa 97 % der gängigsten Token unterstützt werden) und diese nach Abschluss in Ihr Auszahlungs-Wallet übertragen werden. Grundsätzlich eine Ein-Klick-Lösung, um ERC-20/Airdrop-Token zu erkennen und direkt in ETH umzuwandeln.
Ich habe eine Antwort mit genau dem, was der Benutzer angefordert hat. Ein einziger privater Schlüssel und damit ein einziger Gaspool für alle ERC 20-Geldbörsen.
Die Lösung: Ein Vertrag, der andere Verträge generiert, die als Empfänger fungieren.
Relevante Stackexchange-Antwort: Common Gas Wallet für ERC20-Wallets?
Relevanter Github-Link: https://github.com/Meshugah/ERC20-CommonGasWallet
Jab2Tech
Jab2Tech
Rob Hitchens
Rob Hitchens