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?
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.
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;
}
Zaid Amir
Nicolas Massart
Zaid Amir
Nicolas Massart