隨著多鏈生態系統的發展,像Fantom 這樣的區塊鏈提供高吞吐量、低交易成本和即時終結性——對於希望在大多數第1 層區塊鏈提供的基礎上進行重大可擴展性和成本效率升級的開發人員來說,這是至關重要的功能。 Fantom 與EVM 兼容,因此dApps 和現有的開發人員基礎設施可以輕鬆地移植到這條日益流行的鏈上並使用。
Chainlink 價格信息 可在Fantom 主網上使用,可用於在Fantom 上構建需要分散、防篡改數據輸入的應用程序。在本技術教程中,我們將引導您了解如何使用來自Chainlink 預言機的價格數據在Fantom 區塊鏈上構建和部署智能合約。
什麼是幻影?
Fantom 是一種具有低交易成本和即時終結性的高吞吐量區塊鏈。由於其EVM 兼容性,許多以太坊開發人員將其用作擴展其dApp 的一種方式。以太坊開發人員可以使用標準的以太坊開發人員工具輕鬆部署現有合約,同時使用更快的區塊鏈,增加他們能夠構建的dApp 類型的多樣性。
用Fantom 建造
在Fantom 上構建和部署合約就像在以太坊或其他EVM 兼容鏈上一樣簡單。第一步是選擇一個允許你在鏈上啟動合約的開發框架。在本教程中,我們將使用Remix,但也可以隨意使用任何其他基於Solidity 的工具,例如 安全帽, 布朗尼, 或者 松露.
建立合同
我們需要做的第一件事是為價格饋送導入必要的Chainlink 合約`AggregatorV3Interface.sol`,其中包含從現有的預先聚合的分散式價格饋送中檢索數據的接口。要使用這個界面,我們需要知道價格信息所在的位置——這個細節可以在 Chainlink Fantom Feeds 文檔。我們使用FTM/USD 提要的地址,因此我們可以在構建合約時簡單地使用該地址作為其唯一參數來初始化價格提要接口,如下所示:`priceFeed = AggregatorV3Interface(0xe04676B9A9A2973BCb0D1478b5E1E9098BBB7f3D);`
// SPDX-License-Identifier: MIT pragma solidity 0.8; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; contract FantomLinkFeeds { AggregatorV3Interface internal priceFeed; /** * Network: Fantom Testnet * Aggregator: FTM/USD * Address: 0xe04676B9A9A2973BCb0D1478b5E1E9098BBB7f3D * URL: https://docs.chain.link/docs/fantom-price-feeds/ */ constructor() { priceFeed = AggregatorV3Interface(0xe04676B9A9A2973BCb0D1478b5E1E9098BBB7f3D); } /** * Returns the latest price */ function getLatestPrice() public view returns (int) { ( uint80 roundID, int price, uint startedAt, uint timeStamp, uint80 answeredInRound ) = priceFeed.latestRoundData(); return price; } }
初始化後,我們可以通過調用其函數“latestRoundData()”從聚合器接口獲取最新的價格數據,如“getLatestPriceData()”中所示。這將返回有關提要的多個信息點,但這只是我們關心的價格,因此我們僅返回該價格。由於該函數沒有修改任何東西,只是從聚合器接口讀取數據,所以它被定義為一個視圖函數,幸運的是它不需要gas。
部署合約
部署此代碼很簡單,而且由於Fantom 的EVM 兼容性,標準以太坊部署路徑幾乎不需要更改。首先在編譯器選項卡下的Remix 中編譯合約——只需單擊“編譯FantomLinkFeeds.sol”。然後,進入Deploy 選項卡,將環境設置為Injected Web3 (MetaMask),並為Fantom 的測試網配置MetaMask。為此,只需將這些設置作為“自定義RPC”添加到您的MetaMask 網絡中。
網絡名稱: Fantom測試網
新的RPC 網址: https://rpc.testnet.fantom.network/
鏈號: 0xfa2
象徵: FTM
然後繼續 faucet.fantom.network 檢索一些免費的測試網FTM 以部署您的合約。有關此設置過程的更多信息,您可以查看 Fantom 文檔.
現在合同已經編譯完成,您的網絡設置為Fantom 測試網,並且您的地址由testnet FTM 資助,您只需選擇“FantomLinkFeeds”合同並單擊“部署”即可部署到網絡。您的合約現已在Fantom 測試網上生效,並準備好使用Chainlink 使用真實世界的數據。
只需調用`getLatestPrice` 函數,您就會看到以八位小數精度返回的FTM/USD 響應,此處的值為2.66 美元。
通過一個簡單的導入、一個初始化提要的構造函數和一個讀取價格數據的函數——所有這些都不需要支付任何氣體——你已經用Chainlink 的行業標準價格數據授權了你的智能合約。
概括
由於EVM 兼容性、高速和低成本的結合,Fantom 對於來自基於以太坊的生態系統的開發人員來說是一個有吸引力的前景。當與Chainlink 去中心化預言機網絡結合時,Fantom 變得更加強大,開發人員能夠使用鏈下數據和事件。 Chainlink Price Feeds 提供高質量的匯總價格數據,可用於各種有用的應用程序,例如去中心化交易所(DEX)、流動性池、借貸協議、去中心化保險解決方案和自動做市商(AMM)。
現在您知道如何使用Fantom 構建和部署智能合約,您可以更深入地探索該鍊或與其他EVM 兼容鏈合作,例如Polygon、xDai 或其他使用相同工具的側鍊和第2 層解決方案我們在本教程中使用。如果您更喜歡安全帽、布朗尼或鬆露,請嘗試使用其中一種 Chainlink 入門套件 啟動您的開發之旅。
通過訪問了解有關Chainlink 的更多信息 鏈環 或閱讀文檔 docs.chain.link. 要討論集成,請聯繫專家。