在本技術教程中,我們將介紹如何構建智能合約並將其部署到Avalanche 區塊鏈,以及如何利用 Chainlink 數據饋送 在Avalanche 上創建使用鏈下市場數據的混合智能合約。
和 Chainlink 價格信息現已上線Avalanche 主網上,開發人員能夠以Avalanche 區塊鏈的完整原生速度和低成本輕鬆利用Chainlink 網絡經過實戰考驗的可靠價格數據。 Chainlink Price Feeds 結合來自多個流動性來源的數據,並通過Chainlink 節點運營商的去中心化網絡進行預聚合,以得出具有整個市場覆蓋範圍的單一、高度準確的價格。訪問這些數據對於新鏈的增長至關重要,因為有許多dApp 沒有價格或其他外部數據就無法存在。 Avalanche 是區塊鏈生態系統在部署Chainlink 提要後出現爆炸性增長的最新例子,其中包括 TVL、交易和地址全部 自從Chainlink 集成以來,越來越多的開發人員想知道如何構建和部署Avalanche 智能合約。
Chainlink Price Feeds 的整合和最近推出的 雪崩衝刺,為Avalanche 生態系統中的構建者提供的1.8 億美元獎勵,現在是學習如何在Avalanche 上部署dApp 的最佳時機。在本教程中,我們將介紹如何構建和部署可檢索Chainlink 價格數據的Solidity 智能合約,這些數據可用於確定所需的貸款抵押品、代幣之間的匯率、dApp 參與者的獎勵率等等。由於其新穎的共識算法,Avalanche 提供了高水平的吞吐量、低延遲的交易確定性以及可擴展的、高度分散的驗證器架構。此外,由於Avalanche 與EVM 兼容,我們可以使用所有標準的以太坊工具。在這種情況下,我們在基於瀏覽器的Solidity IDE Remix 中進行構建。
您可以按照以下步驟自行部署代碼 混音要點.
// SPDX-License-Identifier: MIT pragma solidity 0.8; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; contract AvaxLinkFeeds { AggregatorV3Interface internal priceFeed; /** * Network: Fuji * Aggregator: AVAX/USD * Address: 0x5498BB86BC934c8D34FDA08E81D444153d0D06aD * URL: https://docs.chain.link/docs/avalanche-price-feeds/ */ constructor() { priceFeed = AggregatorV3Interface(0x5498BB86BC934c8D34FDA08E81D444153d0D06aD); } /** * Returns the latest price */ function getLatestPrice() public view returns (int) { ( uint80 roundID, int price, uint startedAt, uint timeStamp, uint80 answeredInRound ) = priceFeed.latestRoundData(); return price; } }
寫合同
我們將首先導入價格饋送所需的Chainlink 合約`AggregatorV3Interface.sol`,其中包含用於從現有的預先聚合的去中心化價格饋送中檢索數據的接口。要使用此界面,我們需要知道價格源所在的位置。這可以在 Chainlink 雪崩饋送 文檔。我們使用AVAX/USD 提要的地址,因此我們可以在構建合約時簡單地使用該地址作為其唯一參數來初始化價格提要接口,如下所示:`priceFeed = AggregatorV3Interface(0x5498BB86BC934c8D34FDA08E81D444153d0D06aD);`
初始化後,我們可以通過調用其函數“latestRoundData()”從聚合器接口獲取最新的價格數據,如“getLatestPriceData()”中所示。這將返回有關提要的多個信息點,但它只是我們關心的價格,因此我們僅返回該價格。由於該函數沒有修改任何內容,只是從聚合器接口讀取數據,所以它被定義為一個視圖函數,它很高興不使用氣體。
編譯和部署合約
部署此代碼很簡單,而且由於Avalanche 的EVM 兼容性,標準以太坊部署路徑幾乎不需要更改。首先在Compiler 選項卡下的Remix 中進行編譯; 只需單擊“編譯AvaxLinkFeeds.sol”。然後,進入Deploy 選項卡,將環境設置為Injected Web3 (MetaMask),並為Avalanche 的Fuji testnet 配置您的MetaMask。為此,只需將這些設置作為“自定義RPC”添加到您的MetaMask 網絡中。
網絡名稱:雪崩富士C-Chain
新的RPC 網址:https://api.avax-test.network/ext/bc/C/rpc
鏈號:43113
符號:AVAX
資源管理器:https://cchain.explorer.avax-test.network
然後繼續 https://faucet.avax-test.network/ 檢索一些用於部署合約的免費測試網AVAX。有關此設置過程的更多信息,您可以查看 在Avalanche 文檔上部署智能合約.
現在合同已編譯,您的網絡已設置為Fuji,並且您的地址由testnet AVAX 資助,您只需選擇“AvaxLinkFeeds”合同並單擊“部署”即可部署到網絡。您的合約現已在Avalanche 上生效,並準備好使用Chainlink 對現實世界的數據做出反應。
只需調用getLatestPrice,您就會看到以8 位小數精度返回的AVAX/USD,此處的值為51.54 美元。
就是這樣:一個導入,一個初始化提要的構造函數,以及一個讀取價格數據的函數(沒有gas!),這些都是用Chainlink 的行業標準價格數據授權你的智能合約所需要的。
概括
Avalanche 為構建智能合約應用程序提供了強大的選擇,其網絡的高速和低成本使其對開發人員具有吸引力。當與Chainlink 去中心化預言機網絡結合時,Avalanche 變得更加強大,能夠訪問鏈下數據和事件。 Chainlink Price Feeds 提供高質量的匯總價格數據,可用於各種有用的 應用,例如去中心化交易所(DEX)、流動性池、借貸協議、去中心化保險解決方案和自動化做市商(AMM)。
Chainlink 是構建、訪問和銷售在任何區塊鏈上支持混合智能合約所需的預言機服務的行業標準。 Chainlink 預言機網絡為智能合約提供了一種可靠連接到任何外部API 的方式,並利用安全的鏈下計算來支持功能豐富的應用程序。 Chainlink 目前在DeFi、保險、遊戲和其他主要行業獲得了數百億美元的資金,並為全球企業和領先的數據提供商提供了通向所有區塊鏈的通用網關。
通過訪問了解有關Chainlink 的更多信息 鏈環 或閱讀文檔 docs.chain.link. 討論整合, 聯繫專家.