以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > PEPE幣 > Info

手把手教你測試Chainlink智能合約 -ODAILY_HAI:AIN

Author:

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

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

1.Solidity測試

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

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

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

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

MakerDAO聯創目前持有約1.22億美元MKR,占MKR總流通量的12.6%:金色財經報道,據鏈上分析師余燼監測,MakerDAO聯創Rune在2022年11月至2023年4月,累計出售1,357萬枚LDO(2614萬美元),出售均價1.92美元;2022年11月至2023年7月,累計回購32,637枚MKR(2395萬美元),回購均價734美元,回購MKR資金全部來自于出售LDO;Rune兩個地址目前共計持有123,893枚MKR(1.22億美元),占MKR總流通量(977,631枚MKR)的12.6%。[2023/7/17 10:59:32]

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

-Ethereum.org

-Truffle

-HardhatandWaffle

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

SEC:CZ為幣安做市商Sigma Chain實際所有者,由多名幣安員工運營:6月6日消息,SEC在針對幣安的訴訟文件中,表示Sigma Chain是一家在瑞士注冊的加密資產交易公司。CZ是Sigma Chain的實際所有者,多名幣安員工負責運營。其中,幣安的后勤經理同時也擔任Sigma Chain的總裁,她還對BAM Trading的銀行賬戶具有簽字權。Sigma Chain是幣安兩個平臺的活躍交易員,并自稱為“幣安交易所的主要做市商”。

在Binance.US平臺推出后,CZ指示Sigma Chain成為其首批做市商之一。此外,自從Binance.US平臺開始向客戶提供場外交易(OTC)交易和其轉換交易和一鍵買賣(OCBS)服務以來,Sigma Chain一直作為Binance.US平臺客戶的交易對手,有時甚至是唯一的交易對手。[2023/6/6 21:17:36]

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

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

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

FIS子公司Worldpay將在Polygon上啟用USDC結算:金色財經報道,FIS集團旗下的支付平臺Worldpay不久將在Polygon區塊鏈上為客戶啟用USDC結算。Worldpay為客戶提供的USDC穩定幣的結算將由BCW集團啟用,該集團將托管和運營一個驗證器節點,以確保交易的處理和驗證。

今年早些時候,Worldpay宣布與Circle合作,使加密貨幣原生企業和傳統企業能夠建立一個適合其首選貨幣的結算和財務戰略。(coindesk)[2022/11/2 12:09:23]

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

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

使用分叉

Grizzly.fi將推出與瑞士法郎掛鉤的超額抵押穩定幣:金色財經報道,DeFi平臺Grizzly.fi正在推出與瑞士法郎掛鉤的超額抵押穩定幣。金色財經此前報道,DeFi平臺Grizzly.fi在社區啟動儀式上籌集2600萬美元。[2022/8/23 12:43:52]

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

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

-你是否部署自己的pricefeed?

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

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

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

Acala疑似遭黑客攻擊,正通過一項緊急投票暫停操作:8月14日消息,社區有消息稱,Acala因iBTC/aUSD池的漏洞遭到黑客攻擊,攻擊者錢包中目前持有超過12億枚aUSD。

Acala隨后發推稱,注意到Honzon協議的一個配置問題影響到aUSD。團隊正在通過一項緊急投票,暫停Acala上的操作,同時正調查并解決這個問題。團隊將在網絡恢復正常后更新報告。[2022/8/14 12:24:11]

假設我們有一個使用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:HAIAINCHAChainplugchain幣發行量originchainBinance Multi-Chain CapitalAngryBlockchain

PEPE幣
DoraHacks DeFi Hackathon | Coding 中勿擾-ODAILY_ORA:IND

這張1975年2月17日HOMEBREW計算機社團的活動告示,就是“黑客馬拉松”活動的起源,更是“Apple”公司的起源.

1900/1/1 0:00:00
平安圣誕謹防變盤BTC牛市盤整,以太坊高空瑞波深陷熊市-ODAILY_區塊鏈:ANONUSD價格

本周初BTC基本是維持高位調整格局,就在凌晨階段出現短時快速下跌,跌破22600USDT,最低跌至22604USDT。之后小幅反彈,現位于23008USDT附近整理.

1900/1/1 0:00:00
行情分析:看兩位70歲老人爭份工作,讓比特幣笑開了花 -ODAILY_BTC:DOT

行業要聞 1、巴基斯坦證券交易委員會啟動制定加密貨幣監管框架進程2、英國央行行長:未來十年內可能會發行央行數字貨幣3、歐洲央行行長:預感歐洲將推出數字歐元4、美國OCC代理署長:對于CBDC美國.

1900/1/1 0:00:00
K線海闊天空,那盤口數據引導我們接下來該怎么走-ODAILY_ALG:hay幣現在的價

現在比特幣上方沒有壓力位是真的。很多人說現在是一個海闊天空,那主力是真的就給你們一個海闊天空嗎?如果大盤沒發給我們一個答案.

1900/1/1 0:00:00
大盤扭轉回暖,后期持續看漲-ODAILY_BTC:LINK

H度加密貨幣信托暫停新的投資,今年牛市非常順利,H度開啟了年底度假模式。與眾人惶恐不同,似乎是為了慶祝度假.

1900/1/1 0:00:00
未來5-10年虛擬貨幣都不會合法,我們該怎么辦?-ODAILY_ETH:數字人民幣穩定幣上線交易所

最近發生了一連串看上去與幣圈相關的政策方面的信息。前段時間OK交易所負責人出事,這件事至今仍然沒有下文并且越來越接近出大問題的狀況,大量投資者的數字資產在交易所里提不出來,越來越多投資者焦躁不安.

1900/1/1 0:00:00
ads