Das Ziel ist es, einen Vertrag zu erstellen, der es Partei B ermöglicht, nach einer bestimmten Formel vom Konto von Partei A abzuheben. Ich möchte kein Escrow-Modell verwenden, sondern nur:
Gibt es dafür Beispiele oder Best Practices?
Sie können nicht direkt vom Konto einer anderen Person abheben. Sie können jedoch Smart Contracts erstellen, in denen A das Geld einzahlen kann. Dann darf B das Geld für einen bestimmten Zeitraum aus dem Smart Contract abheben. Wenn B das Geld nicht abgehoben hat und die Frist abgelaufen ist, kann A das Geld aus dem Smart Contract abheben
Ich empfehle die Verwendung eines Tresors. Sie können OpenZeppelin RefundVault überprüfen. Benutzer senden einige Gelder an diesen Tresor und abhängig von Ihrer Geschäftslogik können Benutzer eine Rückerstattung anfordern und Geld abheben.
Für ERC20-Token können Sie die approve
Funktion verwenden, um jemand anderem zu erlauben, sich von Ihrem Token-Bestand abzuheben:
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md#approve
Ermöglicht
_spender
die mehrfache Abhebung von Ihrem Konto bis zum_value
Betrag. Wird diese Funktion erneut aufgerufen, überschreibt sie das aktuelle Aufmaß mit_value
.
Für Ether können Sie so etwas wie eine Brieftasche mit mehreren Signaturen einrichten, in der Einzelpersonen Zugriff auf dieselben Gelder haben, die in diesem Vertrag gespeichert sind. Dieser Vertrag funktioniert möglicherweise nicht sofort so, wie Sie es beabsichtigen, sollte aber ein guter Anfang sein:
Paul Razvan Berg
Shawn Tabrizi