Truffle

在 Truffle / Hardhat 中實現 Chainlink 數據

  • September 19, 2021

連接 Chainlink 的最簡單方法是什麼,以便我們可以在本地測試我們的 dApp。我們是否必須執行本地 Chainlink 節點,或者是否有任何解決方法來獲取線上數據?

使用 Mocks(本地測試的最佳選擇)

如果在本地進行測試,每個工程師都應該使用的路線是使用 mocks。這些是連結節點的虛假實例,它們以虛假或“模擬”數據進行響應。你可以在AaveHardhat-starter-kit repo中看到一些這樣的例子。通過這種方式,您可以部署到您的測試網,並且只是模擬來自您的節點的響應。

最簡單的選項(不適合快速迭代)

最簡單的測試方法是部署到 testnet。這將使您可以使用已經建構的 Chainlink 節點和聚合器合約,因此您不必建構自己的。如果你想建立自己的,這也是兼容的。這也將最類似於您的主網環境,每個項目都必須在某個時候進入這個階段。但是,如果您需要在本地測試和執行,有一些很好的解決方案。如果您正在尋找更多資訊,可以查看有關測試 Chainlink 智能合約的完整部落格。

分叉

Chainlink 價格饋送是最容易在本地測試的,因為您可以分叉您正在部署的任何網路。在大多數包(如 truffle、hardhat 等)中都有分叉功能。您可以查看此chainlink-hardhat 儲存庫作為範例。

您將無法以這種方式測試任何請求模型功能,例如Chainlink VRFAny API call

輔助函式

truffle box有一些複雜的偽模擬,它們實際上部署了一個版本的 chainlink 節點,因此你可以呼叫這些假預言機。它們是“偽模擬”,因為它們實際上確實在鏈上部署了鍊鍊預言機合約,它們只是不向鏈下鍊鍊節點發出請求。

對於那些更有野心並希望看到端到端流程的人,您可以執行自己的chainlink節點,只需將ETH_URL節點中的更改為您的本地鏈。您可以輕鬆地學習如何執行一個 chainlink 節點,只需注意教您如何在本地執行一個節點的標註。

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