Empfangen Sie Ether von einer Adresse und übertragen Sie Token an eine andere [geschlossen]

Ich starte einen Crowdsale und möchte meinem Crowdsale-Vertrag eine benutzerdefinierte Funktion hinzufügen. Grundsätzlich möchte ich, dass Benutzer Token für Fiat und Bitcoins kaufen können.

Damit das funktioniert, werde ich eine Brieftasche mit etwas Ether erstellen und sobald ein Benutzer meine Token mit einer Fiat-Transaktion kauft, möchte ich die entsprechende Menge an Ether von meiner Brieftaschenadresse an meinen Vertrag senden und den Betrag in die entsprechende Anzahl von umwandeln Tokens, dann überweisen Sie die Tokens an die Adresse des Investors.

Gibt es eine Möglichkeit, das zu tun?

Antworten (2)

So funktioniert es nicht, außer wenn Sie eine Börse aufbauen möchten. Ethereum weiß nicht, was Fiat oder Bitcoin sind. In der Kette ist nur Ether gültig. Sie müssen also nur Ether in Ihrem Vertrag akzeptieren. Benutzer müssen Ether zuerst von einer Börse mit beispielsweise Fiat oder BTC kaufen und es dann an Ihren Vertrag senden.

Nein das weiß ich. Wie gesagt, ich werde ein separates Wallet mit Ethereum erstellen und einen schnellen Austausch basierend auf dem Ethereum-Wert von Coinmarketcap durchführen. Grundsätzlich frage ich mich, wie ich eine Funktion in meinem Vertrag aufrufen kann, für die Ethereum gesendet werden muss. Oder mit anderen Worten, wie kann ich dafür sorgen, dass meine Funktion Ethereum als Parameter erfordert und akzeptiert
Das ist nicht klar, was Sie tun möchten. Verzeihung.
Ich denke, es war ziemlich klar. Wie auch immer, ich habe es herausgefunden.
@ZaidAmir in diesem Fall können Sie Ihre eigene Frage beantworten. Es tut mir sehr leid, dass ich dir nicht helfen konnte. Aber du hast dein Problem gelöst, also ist es ein Happy End.

Nun, die Lösung war einfach genug, erstellen Sie einfach eine Funktion, die nur vom Eigentümer aufgerufen werden kann, und überweisen Sie Geld an eine beliebige Brieftaschenadresse.

function FreeTransfer(address _investor, uint tokens) public onlyOwner returns (bool success) {
       return transfer(_investor, tokens);
    }

function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = safeSub(balances[msg.sender], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        Transfer(msg.sender, to, tokens);
        return true;
    }