加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > Gateio > Info

手把手教你測試Chainlink智能合約 -ODAILY_INK:ChainLink

Author:

Time:1900/1/1 0:00:00

由于智能合約的不可更改性,在部署之前對其進行徹底的測試是至關重要的。在編寫自動化測試時,開發人員有幾個選擇。

1.Solidity測試

2.Javascript/python/其他語言測試

通常情況下,用JavaScript和Solidity對合約進行兩種方式的測試是很有用的,因為大多數dApp都會以這種方式與合約交互,你可以從這個示例測試倉庫中看到。另一方面,當你測試一個主要使用點來自另一個鏈上合約的合約/庫時,最應該使用Solidity。

很明顯,為了更加測試更加全面,請同時使用這兩種方法。如果你有一個簡單的智能合約,比如:

編寫一些Solidity測試非常簡單,例如:

山東省公共資源交易中心正式發出第一張區塊鏈中標通知書:8月9日消息,濟南繞城高速東線小許家樞紐至遙墻機場段改擴建工程房建工程施工項目的中標人收到了山東省公共資源交易中心(省政府采購中心)第一張區塊鏈中標通知書,中標人通過手機掃描中標通知書上的上鏈二維碼獲取到交易過程關鍵數據上鏈存儲憑證,憑證內容包括存證主體、文件名稱、文件大小、文件格式、文件哈希值及存證時間等相關信息,并加蓋存證主體保全印章。同時,中標人還可點擊查詢上鏈存儲證明書的上鏈信息附件,獲取存證詳細內容,包括項目名稱、項目編號、開標時間、中標人名稱、中標金額等具體交易信息,實現對交易過程關鍵數據進行查詢、驗真。(山東省公共資源交易中心)[2023/8/9 21:33:14]

對于那些想要了解更多關于一般智能合約測試的人,這里有一些額外的來源,你可以查看。

-Ethereum.org

-Truffle

Arthur Hayes:AI將通過DAO進行自我組織,其代幣交易或促使DEX形成自然壟斷:7月28日消息,BitMEX創始人Arthur Hayes在其博客中撰文表示,未來的人工智能(AI)將通過去中心化自治組織(DAO)進行自我組織。他認為,AI 將不再依賴傳統的公司結構,而是選擇公共區塊鏈進行部署和運行。他以一個名為「詩人 AI」的假設性 AI 為例,解釋了如何通過智能合約在公共區塊鏈(如以太坊)上部署 DAO 和代幣。

Hayes 還指出,AI DAO 的債務市場的成熟程度將決定其經濟影響力的增長速度。他認為,由于公共區塊鏈可以持續監控 AI DAO 以確保其遵守債務契約,并在未付款的情況下使用智能合約自動轉移數字財產和/或所有權,因此,債權人可以對 AI DAO 的賬目進行持續的、準確的審計,這將使投資者有信心向符合其財務標準的 DAO 投資。

此外,Hayes 還預測,隨著 DAO 的激增,以太坊交易將呈指數級增長,導致 ETH 的價格飆升。同時,去中心化交易平臺(DEX)將成為自然壟斷者,因為它們將成為第一個真正全球的交易場所,任何具有互聯網連接的人或 AI 都可以在其中進行交易。他認為,由于 AI 無法被國家強制控制,因此,交易所有形式的 DAO 代幣的交易平臺可能會成為自然壟斷者。識別這些 DEX 并購買它們的治理代幣將產生巨大的利潤。[2023/7/28 16:04:08]

-HardhatandWaffle

以太坊質押數量自Shapella升級以來激增440萬枚:金色財經報道,自4月12日以太坊實施Shapella升級以來,已有超過440萬枚ETH被存入以太坊合約,總數量達到2258萬枚。Bitfinex分析師在一份周報中表示,對質押的需求激增可能源于大型ETH持有者,他們不愿意清算自己的持股,而是尋求產生被動收入。這種趨勢預計會持續下去,特別是考慮到通貨緊縮的力量預計會大大推動ETH的價格。[2023/5/23 15:20:40]

您至少需要熟悉Truffle或HardHat,才能閱讀本文檔的其他內容。你也可以從我們之前的一些文章中學習如何使用Truffle部署和測試Chainlink智能合約。另外你需要明白單元測試和集成測試是不同的,它們各自有非常重要的功能。

然而,當使用ChainlinkOracles和鏈上數據時,測試可能會變得有點棘手。一些傳統的方法并不能完全覆蓋每一個結果。在這篇文章中,我們將幾乎只關注JavaScript測試,但如果你也想使用Solidity的方式做測試,這些方法也同樣適用。

測試Chainlink智能合約的最簡單方法

DeFiMoneyMarket(DMM)(是一個使用測試網來運行Chainlink測試的項目的例子。

Animoca Brands將于2024推出NFT綜合格斗游戲“ONE Fight Arena”:4月27日消息,Animoca Brands 正與新加坡綜合格斗品牌 One Championship 合作制作一款帶有 NFT 的綜合格斗游戲ONE Fight Arena,預計于 2024 年推出,早期玩家測試今年晚些時候開始。“ONE Fight Arena”游戲中的每個格斗家角色都會推出相應的 NFT,讓玩家獲得數字所有權。(Decrypt )[2023/4/27 14:30:17]

測試Chainlink智能合約最簡單的方法就是使用測試網!大多數項目會在主網之前部署到測試網上,但他們也可以不斷重新部署來迭代他們的測試,因為測試網ETH是免費的。Kovan或Rinkeby上目前有很多Chainlink節點,pricefeeds,以及任何其他你要找的東西。在你的測試文件中,需要獲得一些測試網的LINK和ETH。另一個簡單的方法就是運行你自己的Chainlink節點,讓它監控你正在運行的本地私有鏈。

與本地私有區塊鏈相比,在測試網上運行測試并不是特別快。你還會面臨觸及faucet極限的可能。讓我們看看如何在本地私有鏈測試你的Chainlink智能合約。

使用分叉

Kaiko報告:陷入困境的Silvergate或會提升穩定幣在加密交易中的作用:3月7日消息,市場研究公司Kaiko在周一發布的一份報告中表示,陷入困境的Silvergate Capital決定關閉其在大投資者中很受歡迎的即時結算服務SEN,這將提高穩定幣及其發行商在加密交易中的作用。Kaiko的報告稱:“隨著SEN的消亡,穩定幣可能會在交易員中變得更加普遍。”Kaiko預測,交易員將不再使用銀行渠道將美元存入加密貨幣交易所,而是將資金轉移到穩定幣發行方以獲得穩定幣,然后將穩定幣存入交易所。報告補充道:“但問題是,穩定幣發行人仍然需要訪問加密貨幣銀行,因此現在風險進一步集中。”

Kaiko還在報告中表示,隨著穩定幣市值的增長,全球法定貨幣與加密貨幣之間的交易對的數量有所下降。數據顯示,去年交易所新增的美元交易對數量從2021年的400個降至326個。報告稱:“自FTX崩潰以來,相對于USDT、USDC和歐元交易對,美元的市場份額持續下降。”例如,USDT在比特幣交易量中的主導地位最近達到了93%的歷史新高,比2017年的3%有了顯著的增長。報告稱,目前,美元和與美元掛鉤的穩定幣仍然是加密經濟的基礎,但美元支付渠道日益復雜化可能會翻轉這一趨勢。(Coindesk)[2023/3/7 12:46:28]

Gelato是一個使用分叉和Chainlink的項目例子。

ChainlinkPriceFeeds是Chainlink提供的最受歡迎的服務之一。PriceFeeds預言機網絡聚合了來自去中心化的獨立來源的數據,并在鏈上創建了一個真實的數據源。問題是,你如何測試你是否正確使用了這些價格數據?

-你是否部署自己的pricefeed?

-你是否直接忽略測試pricefeed?

-你是否完全跳過測試并祈禱你的dApp不會崩潰?

現在,我們非常歡迎你做第三種選擇,但我們不鼓勵你這樣做,尤其是測試它們其實是一件很容易的事情。我們需要做的就是將我們正在使用的鏈進行分叉。如果你之前沒有使用過ChainlinkPriceFeeds,請務必查看我們的文檔。本節的所有代碼都可以在chainlink-hardhat代碼倉庫中找到。Hardhat是一個類似于Truffle的框架,但有很多不錯的質量很好并且有一定的差異化。

假設我們有一個使用ChainlinkPriceFeeds的合同,看起來像這樣:

首先,我們正在使用主網pricefeed地址,但請不要擔心,我們是故意這樣做的。通常,要與主網pricefeed互動,我們必須部署在主網上。但是實際上,我們可以在運行測試時分叉鏈,查看如果將合約部署在主網上的情況會是什么樣子,而無需實際在主網上進行部署。使用HardHat的設置,我們只需將分叉的相關配置添加到hardhat.config.js文件中即可。

我們的hardhat.config.js文件如下所示:

您會看到我們的`hardhat`網絡有一個`forking`密鑰。這意味著,當我們在`hardhat`網絡上部署腳本時,我們將首先派生RPC_URL中的內容,然后將其部署到該網絡中。這對于測試非常有用,因為我們實際上可以將智能合約部署到主網的分叉版本中,并對其價格進行測試。

來嘗試一下吧!

這將通過在分叉主網來測試我們的智能合約。Truffleteams還有一個功能,你可以分叉主網,并基于分叉的網絡進行測試。

使用Mocks

Aave是一個使用mocks和Chainlink進行測試的項目的例子。

不幸的是,分叉主網來測試與ChainlinkOracles的交互是行不通的,這是因為我們沒有任何ChainlinkOracles監控我們的分叉網絡。所以我們經常需要尋找其他方法。測試具有依賴性的對象和服務并不是什么新鮮事,但在編寫單元測試時可能會帶來困難。一個好的解決方案是模擬所有依賴關系,并將測試僅僅集中在合約本身。

Mocking本質上是用更簡單的對象代替復雜的對象,以模擬我們要做的事情的功能。這對于使用ChainlinkAPICall、ChainlinkVRF或任何Chainlink外部適配器的項目來說是非常棒的。通常情況下,工程師會在他們的測試文件夾中創建一個`mocks`文件,其中包含了所有的虛擬mocks。我們可以看到用這樣的文件模擬一個ERC20的簡單版本,它可以模擬我們在測試時與一個真實的ERC20一起工作。

一個更相關的mock將與模擬Chainlink消費者者一起使用,或者與ChainlinkOracle進行交互的智能合約。看起來像這樣:

在這個Mock中,我們有`sendTweet`函數--在一個_真實的_Chainlink消費者合約中,它會向一個Chainlink節點發出ChainlinkAPI請求來"發送一條推特"。然而,在我們的mock中,我們只是發出一個日志,說明發送了一條tweet,這可以是一個簡單的方式來虛構得到Chainlink節點的響應。你可以在tweetherrepo中看到所有這些模擬的操作。那個repo也使用了Truffle和Hardhat的組合,所以你可以看到這兩者的良好配合。

你可以看到很多生產項目都在使用這種方法。例如,Aave就使用ChainlinkMocks來運行他們的測試。

使用助手來部署

最復雜的測試可以在trufflesmartcontractkitmock中找到,這是Chainlink工程師用來構建智能合約的首選工具之一。一旦你安裝了Truffle,你可以通過打開一個新的repo,然后運行下面的命令,讓你自己的盒子快速運轉起來:

`truffleunboxsmartcontractkit/box`

一旦你安裝好這個,你就會看到`MyContract_test.js`,它運行了所有你在調用ChainlinkAPI時想要覆蓋的潛在場景。在ChainlinkTrufflerepo中查看它。

總結

測試Chainlink智能合約是確保你的代碼在開發時保持高質量的好方法,上面的一系列選項讓測試變得比以往任何時候都要簡單。不要以為在測試中運行復雜的對象與彼此之間的測試太困難。當涉及到擴展你的dApp并構建一些驚人的東西時,集成測試是至關重要的。

對于那些希望開始使用這些神奇工具進行構建的人來說,一定要點擊示例中的鏈接,或者直接前往Chainlink文檔。你會發現你需要開始并成為Solidity和區塊鏈工程大師的一切。

Tags:INKCHALINKChainLinktronlink波寶錢包騙局Plug ChainAlphaLinkchainlink幣今日價格

Gateio
BEYOND-2020區塊鏈產業大會-ODAILY_區塊鏈:CHA

11月23日-24日,由獵云網、獵云財經主辦,VeryHash總冠名,火幣、礦工爸爸聯合主辦的“BEYOND-2020區塊鏈產業大會暨年度頒獎盛典”將在深圳灣萬麗酒店隆重召開.

1900/1/1 0:00:00
行情分析:美股想要帶崩全場,但12歲的比特幣不服氣 -ODAILY_BTC:GMT

行業要聞 1、成渝地區區塊鏈應用創新聯盟成立2、華為推出首款支持數字人民幣硬件錢包的智能手機3、比特幣白皮書發布12周年4、評論:央行數字貨幣推出有望引發新一輪的金融科技變革5、灰度:比特幣被視.

1900/1/1 0:00:00
BTC兩度殺跌,你被騙了嗎?-ODAILY_BTC:BTCMT幣

據Bitcoinwin數字貨幣行情顯示,BTC自從二次大跌破18000后,再度反彈沖擊高位。據Bitcoinwin行情顯示,上周BTC真可謂坐了一把過山車,行情由上周一最高的19428跌至最低的.

1900/1/1 0:00:00
行情分析:突然安靜的空氣,是黎明前,還是黃昏后?-ODAILY_BTC:Open Trading Network

行業要聞 1、韓國對加密數字貨幣征稅可能會推遲三個月時間執行2、ETH2.0存款合約進度達100%創世區塊將如約啟動3、華爾街日報頭版頭條:BTC交易創紀錄正吸引更多支持4、澳大利亞投資管理公司.

1900/1/1 0:00:00
比特幣行情解析:回調做多,把握盈利機會-ODAILY_比特幣:BSV

周末整體行情走勢并不算出乎意料,兩天時間基本上維持震蕩回調的走勢,并且圍繞著16000美元運行,但同時也能看到btc整體的強勢,回落的再多當天也能形成反彈的走勢,并留下較長的下影線.

1900/1/1 0:00:00
比特幣多頭高位出貨,趨勢轉為震蕩,建議部分離場觀望-ODAILY_比特幣:ALEX

BTC 日圖收Pinbar,價格于中位之上,成交量同比前日有所放大接近一倍,結合前次放量下殺,大概率是多頭獲利離場,出貨的操作,雖然多頭出貨會引起價格上漲停滯、有一些回調.

1900/1/1 0:00:00
ads