ERC20 :: Übertragung von Token ohne Sendergas

Nehmen wir an, wir haben 50 ERC20-Token, die wir auf unserer Website unterstützen (Einzahlungen) möchten. Leute hinterlegen Token an den ETH-Adressen, die wir für sie generiert haben.
Am Ende des Tages wollen wir Token von allen generierten Adressen sammeln und an unsere Cold Wallet senden.

Wie können wir den Transfer zum Cold Wallet machen, wenn die neu generierten Adressen keinen Ether drauf haben (also kein Gas) und wir keinen Ether dorthin schicken wollen?

Vorzugsweise möchte ich alle GAS, die für Transaktionen erforderlich sind, von der Cold-Wallet-Adresse bezahlen - ist das möglich?

Wie gehen Börsen mit solchen Situationen um? Generieren sie die Adressen und jedes Mal, wenn sie dort Eth senden, um genug für Benzin zu haben? Am Ende des Tages müssen sie Vermögenswerte auf ein Konto verschieben. Das klingt ... ineffizient.

Hast du jemals eine Antwort auf diese Frage gefunden? Ich möchte herumspielen und etwas Ähnliches tun, aber ich möchte kein Gas an 1000 Brieftaschen senden.
Bitte stellen Sie eine neue Frage, wenn diese Frage verwandt ist, fügen Sie einen Link hinzu.

Antworten (3)

Dies ist derzeit mit dem ERC20-Standard nicht möglich. Es gibt einige Vorschläge, die dieses Problem aus verschiedenen Blickwinkeln angehen, aber keiner von ihnen ist noch als Standard akzeptiert:

  • EIP 865 unterstütztdelegatedTransfer
  • EIP 965 erweitert ERC777 um einen „Check Operator“. Der Anwendungsfall, nach dem Sie gefragt haben, wird hier beschrieben .

Beide Vorschläge erfordern jedoch Änderungen im Token-Vertrag, sodass sie nicht für bereits bestehende ERC20-Token funktionieren.

Die offensichtliche Lösung besteht also leider darin, gerade genug Ether an die generierten Adressen zu senden, um die Gaskosten für das Auslagern der Token zu decken.

Wenn Sie zufällig über eine beträchtliche Mining-Leistung verfügen, um alle X Stunden einen Block zu produzieren, und bereit sind, X Stunden zu warten, um diese Token herauszubewegen, können Sie Ihre Mining-Software so konfigurieren, dass Ihre eigenen gebührenfreien Transaktionen in Ihre eigenen Blöcke aufgenommen werden.

Danke, ich habe gesehen, dass es kein Standard ist, aber irgendwie müssen Börsen selbst kleine Mengen an Token von einer großen Anzahl von Adressen sammeln, und ich bin mir ziemlich sicher, dass sie GAS nicht für jedes dieser Konten senden, da es teuer sein wird
Das ist genau das, was die meisten (wenn nicht alle) Depotbörsen tun: eine Adresse generieren, sie mit genügend Ether finanzieren, um die Gasgebühren für ein paar Token-Transaktionen zu decken, und dann den Ether herausholen, wenn der Benutzer zu lange inaktiv wird. Sie verwenden eine einzige Adresse für alle Token, also eine Adresse pro Benutzer.

Anstatt EAOs für die Benutzer zu erstellen, erstellen Sie Vertrags-Wallets mit einer Übertragungsfunktion, die Sie von der Adresse aus aufrufen können, an die Sie das Token senden möchten. Allerdings ist das von Ihnen vorgeschlagene System etwas seltsam, da die Benutzer Ihnen vertrauen müssen. In einem solchen Fall können Sie einfach einen Vertrag mit Guthaben für jeden Benutzer haben, genau wie beim Token-Vertrag.

Hoffe das hilft

Hallo Jamie! Das hört sich toll an, kannst du es ein bisschen näher erläutern? Wie soll es funktionieren? Was soll ich für jeden Schritt googeln?
Welcher, der Wallet-Vertrag oder der Vertrag mit Guthaben für jeden Benutzer? Beachten Sie, dass Sie ihn einfach bitten können, Ihnen die Token zu senden, wenn er Ihnen vertrauen muss
Eigentlich beides. Ich stelle die kleine Ortsvermittlung zur Verfügung. Ich generiere ihre Adresse und teile sie im Frontend. Die Leute schicken mir Token zum Umtausch in USD. Daher muss ich es am Ende in die Haupt-Cold-Wallet einsammeln, aber ich möchte nicht an jede dieser Wallets Ether schicken, da die Beträge manchmal sehr klein sind und es nicht effizient ist. Ich frage mich, wie große Börsen das tun, weil die Kosten in großem Maßstab wirklich hoch sind. Nach dem, was ich aus Ihrem Beitrag entschlüsselt habe, kann ich einen Vertrag schreiben, der es mir beispielsweise ermöglicht, Tron-Token direkt auf Cold Wallet zu übertragen, und ich werde die Gebühr bezahlen?
Ich brauche nur mehr Details und Schlagworte, damit ich bei Google nachschlagen kann, was ich verwenden kann, um den Benzinpreis mit meiner Brieftasche zu decken, anstatt ihn an jede von mir generierte Brieftasche zu senden
Ich möchte nur sicher sein, dass ich verstehe, was Sie brauchen. Warum bitten Sie sie nicht, die Token direkt an Ihre Brieftasche zu senden?
Ich möchte dasselbe System wie an Börsen bereitstellen - jeder bekommt sein neu generiertes eth-Konto auf meiner Brieftasche. Wenn ich mehrere bekannte Token unterstützen möchte, würde ein Wallet-Vertrag oder ein Vertrag mit Guthaben funktionieren?
@susanoo fragt nach einer Depotbank-Einrichtung. Er benötigt für jeden Benutzer unterschiedliche Adressen, damit er die Einzahlungen den entsprechenden Benutzern zuordnen kann.
@Jaime kannst du mir dabei helfen?
Entschuldigung, ich verstehe immer noch nicht, warum Sie eth-Adressen erstellen müssen, wenn die Leute ihre Token bereits in eth-Adressen haben. Sie können sie einfach bitten, die Token stattdessen an die Hauptadresse zu senden. Da die ERC-Ereignisse bei der Übertragung ausgelöst werden, können Sie im Backend wissen, wer Ihnen Token gesendet hat. Lassen Sie mich wissen, wenn ich etwas vermisse. Die von mir vorgeschlagene Lösung kostet Sie immer noch Gas für jede Transaktion, kostet Sie aber nichts, wenn sie die Token an Ihre Adresse senden.

Sie können mit "Flashbots"

Willkommen beim Ethereum Stack Exchange! Die Antworten hier müssen etwas detaillierter sein :) Dies wurde automatisch markiert und die einzige Wahl, die ich habe, ist, ob diese Antwort von geringer Qualität ist oder nicht, und sie erfüllt nicht die Messlatte der letzteren ... BEARBEITEN: anscheinend Ich kann diesen Kommentar hinterlassen, ohne dass das System Ihre Antwort löscht.