Solidity

嗨,我可以在我的智能合約中獲得實時乙太幣到美元的價格嗎?我想保持美元的硬頂。可以這樣做嗎?

  • November 6, 2020

我想為我的 ICO 創建一個函式來計算到目前為止收集的乙太幣並將它們轉換為 USDollars。我想在 USDollars 中限制我的 ICO。有可能這樣做嗎?我正在使用 Solidity 創建我的 ICO 智能合約

您需要使用 Oracle 將價格轉換到區塊鏈上。

如果你想啟動你自己的基於 Oracle 的智能合約,你應該查看Oraclize.it的開發者文件。他們為這種情況提供了一個範例:

JSON Parsing:從 Kraken API 中提取 last-price 欄位,查詢的第一個參數 json(https://api.kraken.com/0/public/Ticker?pair=ETHUSD).result.XETHZUSD.c.0

但是,利用另一個已經設置了預言機來獲取和儲存這些數據的智能合約對您來說可能會更好、更具成本效益。

我不能真正推薦我個人使用過的一個,但我相信普遍的共識是MakerDAO為他們自己的服務設置了一堆你應該能夠使用的預言機。

編輯:在這裡查看 MakerDAOmedianizer

如果您想獲取財務數據,並且不想等待一個區塊(或更多)並使用 Oraclize 等支付 GAS 和 ETH 費用,您可以從 OrFeed.org 的 smart 獲取股票、加密貨幣、ETF 等數據立即從您的智能合約中免費簽訂契約。

對於來自 Kyber 和 Uniswap 等 Dex 的實時價格:

uint price = orfeed.getExchangeRate("ETH", "USDC", "SELL-UNISWAP-EXCHANGE", 10000000000000000);

所有的 0 都是因為令牌有太多的 0(通常是 18 個)。

uint price = orfeed.getExchangeRate("BTC", "DAI", "SELL-KYBER-EXCHANGE", 100);

對於來自 Synthetix 的外匯數據:

uint price = orfeed.getExchangeRate("JPY", "USD", "DEFAULT", 100000);

庫存(更集中但變得不那麼集中):

uint price = orfeed.getExchangeRate("AAPL", "USD", "PROVIDER1", 1);

網站和 github 上的文件。

希望這些資訊有用!

免責聲明:我為 Orfeed 項目做出了貢獻。

引用自:https://ethereum.stackexchange.com/questions/57622