Ich habe eine Situation, in der ich Ether im Wert von 1 $ an meinen Smart Contract sende.
Nun, wie validiere ich dasselbe auf Solidität? Wie stelle ich sicher, dass der Benutzer zu jeder Zeit Ether im Wert von 1 $ sendet?
Ich meine, wie kann ich sicherstellen, dass msg.value
die Solidität tatsächlich gleich einem Fiat im Wert von 1 $ aus Solidität ist.
Bearbeiten: Ich weiß, ein Orakel kann als Datenquelle verwendet werden. Aber gibt es ein Orakel, das eine API wie Poloinex bereitstellt?
Schritt 1: Ich rufe die https://poloniex.com/support/api/ auf und erhalte den Ether - Fiat-Wert
Schritt 2: Ich sende eine Transaktion an einen Vertrag mit dem zuvor erhaltenen Wert:contract.method.aPayableMethod().sendTransaction({ value: toWei('value from poloinex') })
Schritt 3: Wie stelle ich in meiner bezahlbaren Funktion innerhalb von Solidity sicher, dass der msg.value
immer gleich 1 $ ist?
Bitte werfen Sie einen Blick auf den FiatVertrag . Es handelt sich um einen Spendenvertrag, der die Fiat-Werte stündlich aktualisiert.
Sie müssten so etwas wie ein Orakel verwenden , das diese Informationen in der Kette bereitstellen könnte, aber Sie müssen darauf vertrauen, dass das Orakel jederzeit gültige Daten zurückgibt.
Wiederholung 122442
InfinitePrime
Richard Horrocks
InfinitePrime