譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
我知道,你想直接部署合約和前端,并立刻就開始在測試網上進行測試,但是......我們需要確定一切都按預期工作,而不需要在前端用戶界面上進行monkey測試。
因此,在文章的下一部分,我將介紹一些開發人員應該做的事情:測試合約邏輯!
Waffle
Waffle是一個用于編寫和測試智能合約的庫,它與ethers-js配合得非常默契。
Waffle有很多有幫助的工具。waffle中的測試是用Mocha和Chai一起編寫的。你可以使用不同的測試環境,但Waffle的匹配器(matcher)只能在chai下工作。
我們將使用Chai匹配器來驗證我們所期望的條件是否已經滿足。
在寫完所有的測試用例后,你只需要輸入yarntest,就會自動針對你的合約進行測試。
我不會解釋如何使用這個庫,我將專注于應該測試什么。
我們的合約已經實現了一些邏輯:
用mapping(address=>uint256)publicbalances保存用戶余額
有一個最小質押金額的閥值uint256publicconstantthreshold=1ether。
Grayscale:即使美聯儲加息,加密貨幣價格仍可能上漲:金色財經報道,Grayscale周一表示,如果美聯儲周三加息,只要該決定符合市場預期,加密貨幣價格仍可能受益。也就是說,比特幣仍可能容易受到“許多情緒驅動因素”的影響。[2023/5/2 14:37:40]
有一個最大的時間限制(deadline)uint256publicdeadline=block
);it('executerevertedbecauseexternalcontractalreadycompleted',async()=>{constamount=ethers
);it('executerevertedbecausedeadlineisreached',async()=>{//reachthedeadlineawaitincreaseWorldTimeInSeconds(180,true);awaitexpect(stakerContract
);it('externalcontractsucessfullycompleted',async()=>{constamount=ethers
);});
第一個測試:如果在質押金額沒有達到閾值的情況下調用execute()函數,它將撤銷交易并返回適當的錯誤信息。
Hive Blockchain部署首批由英特爾Blockscale ASIC驅動的比特幣礦機:金色財經報道,加拿大礦企Hive Blockchain周五宣布,已經部署了首批基于英特爾 Blockscale ASIC 驅動的比特幣礦機,這批5800臺機器于2022年底交付并被命名為BuzzMiners,可共同產生638 PH/s至754 PH/s的算力。Hive表示,在加拿大和瑞典的設施中已經安裝了1500多臺采用英特爾技術的機器,它們已經達到了性能目標。Hive最初訂購了13000臺機器,但減少了訂單“以在加密熊市期間有條不紊地擴展業務”。
據報道,Jack Dorsey旗下比特幣公司 Block (SQ)、Argo Blockchain (ARBK)和 Griid Infrastructure 將成為英特爾Blocksale ASIC的首批客戶。[2023/1/14 11:11:15]
第二個測試:連續兩次調用execute()函數,質押已經完成,交易應該被撤銷,防止再次調用。
第三個測試:在時間到deadline之后調用execute()函數。交易應該被撤銷,因為只能在時間到deadline之前調用execute()函數。
最后一個測試:如果所有的要求都滿足,那么execute()函數不會回退,并且所有都如預期一樣。在函數調用外部合約后,completed變量應該是true,外部合約balance應該等于用戶的質押金額,我們的合約余額應該等于0。
做空LINK的ZeusCapital已爆倉1100萬美金:據DeBank數據顯示,隨著LINK24小時暴漲近20%,近段時間持續做空LINK的ZeusCapital在Aave上抵押的USDC已爆倉,目前已完成清算。ZeusCapital在Aave上先抵押了近2200萬美金USDC,借到超過1500萬美金的LINK去市場賣出做空。但LINK近一周時間持續突破歷史新高,不斷逼近Zeus的爆倉價格。在爆倉前夕,ZeusCapital在Aave上補倉抵押了1個LINK,價值11萬美金,但也于事無補。隨著時間LINK的短時暴漲,ZeusCapital在Aave的借款擊穿了安全水平線,進入清算。按照Aave的清算規則,一次最多清算50%。所以目前1100萬美金USDC被清算,ZeusCapital賬戶內仍有1100萬美金的USDC抵押物。如果LINK繼續上漲至12.8美金而不補倉的話,將再次爆倉。[2020/8/9]
如果一切正常,運行yarntest應該會有這樣的輸出:
完整測試代碼
下面我們來看看整個測試代碼:
const{ethers}=require('hardhat');const{use,expect}=require('chai');const{solidity}=require('ethereum-waffle');use(solidity);//UtilitiesmethodsconstincreaseWorldTimeInSeconds=async(seconds,mine=false)=>{awaitethers
Grayscale董事總經理:比特幣已鞏固其作為數字黃金的作用:Grayscale Investments董事總經理Michael Sonnenschein 表示,比特幣正處于一個新的投資時代。他說:“比特幣本身已經鞏固了其作為價值存儲或數字黃金的作用。” Sonnenschein預測,SEC批準比特幣交易所交易基(ETF)是“何時”的問題,而不是“如果”的問題”。 Sonnenschein繼續說:“越來越多的證據表明,這種資產類別不會消失。投資者希望獲得這種資產,如果傳統機構希望保持競爭力,它們將不得不為客戶打開這種資產類別的大門。”(Cointelegraph)[2020/3/3]
};describe('StakerdApp',()=>{letowner;letaddr1;letaddr2;letaddrs;letstakerContract;letexampleExternalContract;letExampleExternalContractFactory;beforeEach(async()=>{//DeployExampleExternalContractcontractExampleExternalContractFactory=awaitethers
);describe('Testcontractutilsmethods',()=>{it('timeLeft()return0afterdeadline',async()=>{awaitincreaseWorldTimeInSeconds(180,true);consttimeLeft=awaitstakerContract
朱嘯虎:當今區塊鏈最多相當于Netscape的互聯網:今日,朱嘯虎在朋友圈談及當今的區塊鏈發展階段,他稱任何新技術都需要前置時間,條件成熟時才能引爆。互聯網如果從Netscape 94年推出圖形瀏覽器算起,那么目前的區塊鏈技術僅相當于Netscape前的互聯網或者磚頭時代的移動互聯網。[2018/2/24]
);it('timeLeft()returncorrecttimeleftafter10seconds',async()=>{constsecondElapsed=10;consttimeLeftBefore=awaitstakerContract
);});describe('Teststake()method',()=>{it('Stakeeventemitted',async()=>{constamount=ethers
);it('Stake0
);it('Stakerevertedifdeadlineisreached',async()=>{//LetdeadlinebereachedawaitincreaseWorldTimeInSeconds(180,true);constamount=ethers
);it('Stakerevertedifexternalcontractiscompleted',async()=>{constamount=ethers
);});describe('Testexecute()method',()=>{it('executerevertedbecausestakeamountnotreachedthreshold',async()=>{awaitexpect(stakerContract
);it('executerevertedbecauseexternalcontractalreadycompleted',async()=>{constamount=ethers
);it('executerevertedbecausedeadlineisreached',async()=>{//reachthedeadlineawaitincreaseWorldTimeInSeconds(180,true);awaitexpect(stakerContract
);it('externalcontractsucessfullycompleted',async()=>{constamount=ethers
);});describe('Testwithdraw()method',()=>{it('Withdrawrevertedifdeadlineisnotreached',async()=>{awaitexpect(stakerContract
);it('Withdrawrevertedifexternalcontractiscompleted',async()=>{//CompletethestakeprocessconsttxStake=awaitstakerContract
);it('Withdrawrevertedifaddresshasnobalance',async()=>{//LettimepassawaitincreaseWorldTimeInSeconds(180,true);awaitexpect(stakerContract
);it('Withdrawsuccess!',async()=>{//Completethestakeprocessconstamount=ethers
);});});
你是否注意到,測試代碼的覆蓋率遠遠大于合約本身?這就是我們想看到的!測試所有的東西!
本翻譯由CellETF贊助支持。
來源:https://stermi.medium.com/how-to-write-your-first-decentralized-app-scaffold-eth-challenge-1-staking-dapp-b0b6a6f4d242
參考資料
登鏈翻譯計劃:https://github.com/lbc-team/Pioneer
翻譯小組:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
Waffle:https://ethereum-waffle.readthedocs.io/en/latest/index.html
Mocha:https://mochajs.org/
Chai:https://www.chaijs.com/
Chai匹配器:https://ethereum-waffle.readthedocs.io/en/latest/matchers.html
CellETF:https://celletf.io/?utm_souce=learnblockchain
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10481469.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
比特幣進入牛市交叉點,BTC反彈迫在眉睫?
1SolRazr(SOLR)TokenSaleResultTheGate.ioStartupSolRazr(SOLR)saleresultisasfollows:SOLRStartupSaleA.
1900/1/1 0:00:002021年是NFT迎來爆發式發展的一年,市場參與者對NFT資產的關注度也越來越高。但由于NFT自身的特殊屬性和目前行業的發展現狀,NFT市場火熱的背后面臨諸多問題,其中NFT定價難和流動性差的問.
1900/1/1 0:00:00對于DeFi參與者而言,資金安全和較高收益是十分重要的,一款好的收益聚合器產品不可或缺。近日,DeFi聚合挖礦協議——Autofarm將要上線部署OEC,作為BSC鏈上擁有最大機槍池的聚會挖礦項.
1900/1/1 0:00:00作者|JackyLHH出品|白話區塊鏈你或許也知道,限制目前區塊鏈技術大規模落地應用的一個很重要因素就是性能,這也是為什么很多傳統互聯網從業者不太看好區塊鏈技術的一個原因.
1900/1/1 0:00:00鏈聞消息,基于區塊鏈的WiFi共享網絡Wicrypt完成150萬美元融資,AU21Capital領投.
1900/1/1 0:00:00尊敬的用戶:?????????????BKEXGlobal即將上線ZDC,詳情如下:上線交易對:ZDC/USDT幣種類型:BEP20充值功能開放時間:已開放交易功能開放時間:2021年11月9日.
1900/1/1 0:00:00