Конвертация Fiat (USD) в эфир в солидности

У меня есть ситуация, когда я отправляю эфир на сумму 1 доллар на свой смарт-контракт.

Теперь, как мне проверить то же самое на твердость? Как мне убедиться, что пользователь отправляет эфир на сумму 1 доллар в любой момент времени.

Я имею в виду, как я могу убедиться, msg.valueчто солидность на самом деле равна 1 доллару фиата от солидности.

Редактировать: я знаю, что оракул может использоваться в качестве источника данных. Но есть ли оракул, который предоставляет API, такой как poloinex.

Шаг 1: я звоню на https://poloniex.com/support/api/ и получаю эфир - фиатную стоимость

Шаг 2: Я отправляю транзакцию в контракт, используя ранее полученное значение:contract.method.aPayableMethod().sendTransaction({ value: toWei('value from poloinex') })

Шаг 3: В моей платной функции внутри Solidity, как я могу убедиться, что это msg.valueвсегда равно 1 $.

Можете ли вы предоставить более подробную информацию? Потому что, если пользователь отправляет 1 эфир (скажем, его стоимость составляет 1 доллар), то контракт получит 1 эфир, и вы делаете с ним все, что вам нужно.
Я хочу проверить, равен ли 1 эфир 1$.
Всем привет. «Цена в долларах США» почти бессмысленна, ИМО :-) Цена, согласно которой? Какую биржу или рынок вы собираетесь использовать для оценки? Это тот же рынок, который будут использовать пользователи вашего контракта? Что, если цена на выбранном вами рынке изменится, пока вы делаете вызов API/оракула? Что, если цена изменится, пока ваш пользователь ожидает майнинга своей транзакции?
Да, я буду использовать API обменного курса coinbase. Разве эти API не предлагают среднюю цену за 24 часа? И как вы думаете, я должен просто проверить msg.value и, если он существует, просто продолжить.

Ответы (2)

Пожалуйста, взгляните на FiatContract . Это контракт, основанный на пожертвованиях, который обновляет фиатные значения каждый час.

Но уже слишком поздно. В итоге я принял ETH.

Вам нужно будет использовать что-то вроде оракула , который может предоставить эту информацию по цепочке, но вы должны быть уверены, что оракул всегда будет возвращать достоверные данные.

Посмотрите на правку.