譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
本文在官方hardhat教程的基礎上,加入了hardhat-deploy插件的使用介紹,本文代碼的GitHub:https://github
/***Afunctiontotransfertokens.**The`external`modifiermakesafunction*only*callablefromoutside*thecontract.*/functiontransfer(addressto,uint256amount)external{//Checkifthetransactionsenderhasenoughtokens.//If`require`'sfirstargumentevaluatesto`false`thenthe//transactionwillrevert
/***Readonlyfunctiontoretrievethetokenbalanceofagivenaccount.**The`view`modifierindicatesthatitdoesn'tmodifythecontract's*state,whichallowsustocallitwithoutexecutingatransaction.*/functionbalanceOf(addressaccount)externalviewreturns(uint256){returnbalances;}}
*
;exportdefaultfunc;func
;exportdefaultfunc;func
);});
依賴的chai-setup同樣在測試文件夾中,內容如下:
importchaiModulefrom'chai';import{chaiEthers}from'chai-ethers';chaiModule
);});
全面覆蓋測試
現在我們已經介紹了測試合約所需的基礎知識,這里有一個完整的代幣測試Case,其中有很多關于Mocha的附加信息以及如何構建測試。我們建議通過閱讀。
彭博社分析師:VolatilityShares宣布計劃在10月12日上市以太幣期貨ETF:金色財經報道,彭博社高級ETF分析師Eric Balchunas發布推文表示,VolatilityShares宣布計劃在10月12日上市以太幣期貨ETF(如果遵守75天的規定,這將比其他ETF早一兩天上市)。[2023/8/16 21:27:40]
但首先我們要添加一些實用函數,我們將在該測試套件中使用。
在test文件夾中創建一個utils文件夾,并在其中創建一個index
returnusers;}exportasyncfunctionsetupUser<Textends{:Contract}>(address:string,contracts:T):Promise<{address:string}&T>{//eslint-disable-next-line;for(constkeyofObject
returnuseras{address:string}&T;}
通過utils可以方便的創建賬號,讓測試簡潔和容易閱讀,例如下面的Test
//`describe`isaMochafunctionthatallowsyoutoorganizeyourtests
);it("Shouldassignthetotalsupplyoftokenstotheowner",asyncfunction(){const{Token,tokenOwner}=awaitsetup();constownerBalance=awaitToken
);});describe("Transactions",function(){it("Shouldtransfertokensbetweenaccounts",asyncfunction(){const{Token,users,tokenOwner}=awaitsetup();//Transfer50tokensfromownertousersawaittokenOwner
);it("Shouldfailifsenderdoesn’thaveenoughtokens",asyncfunction(){const{Token,users,tokenOwner}=awaitsetup();constinitialOwnerBalance=awaitToken
CoinShares首席戰略官:高通脹等宏觀環境可能會阻止新資本進入以太坊:金色財經報道,加密資產管理公司CoinShares的首席戰略官Meltem Demirors在接受采訪時表示,高通脹等宏觀環境可能會阻止新資本進入以太坊,雖然在內部,加密社區和以太坊社區對 Merge 充滿熱情,因為這一事件將大大減少供應,同時可能推動需求。現實之一是在宏觀方面,人們擔心利率,擔心宏觀。有很多事情發生。我認為在這些變化的基本面和技術上,不會有很多新的資本進來購買以太坊。還有一些風險需要與市場一起發揮作用。所以在我看來,合并一直是買謠言賣新聞的情況。(finbold)[2022/8/23 12:43:28]
);it("Shouldupdatebalancesaftertransfers",asyncfunction(){const{Token,users,tokenOwner}=awaitsetup();constinitialOwnerBalance=awaitToken
);});});
下面是yarnhardhattest的輸出。
$yarnhardhattestTokencontractDeployment?Shouldsettherightowner?ShouldassignthetotalsupplyoftokenstotheownerTransactions?Shouldtransfertokensbetweenaccounts(199ms)?Shouldfailifsenderdoesn’thaveenoughtokens?Shouldupdatebalancesaftertransfers(111ms)5passing(1s)
請記住,當你運行yarnhardhattest時,如果合約在你上次運行測試后發生了變化,合約將被重新編譯。
6.使用Hardhat網絡進行調試
Hardhat內置了Hardhat網絡,這是一個專為開發設計的本地以太坊網絡。它允許你部署合約,運行測試和調試代碼。這是Hardhat連接到的默認網絡,所以你不需要設置任何東西就可以工作,只需要簡單運行測試。
Solidityconsole
CoinShares:上周加密投資產品流出總額為720萬美元:4月27日消息,CoinShares報告顯示,上周數字資產投資產品流出降溫,總計 720 萬美元,使這 3 周的總流出達到 2.19 億美元。以太坊繼續遭受第 3 周總計 1690 萬美元的資金外流,使今年迄今為止的資金外流達到 1.69 億美元,山寨幣仍然是投資者關注的焦點,Avalanche、Solana、Terra 和 Algor 的資金分別為 180 萬美元、80 萬美元、70 萬美元和 20 萬美元。盡管上周全球利率上升的威脅及其對科技公司的廣泛負面價格影響,但區塊鏈股票的小幅流入總計 300 萬美元。[2022/4/27 5:14:33]
當你運行測試時,日志輸出將顯示:
$yarnhardhattestTokencontractDeployment?Shouldsettherightowner?ShouldassignthetotalsupplyoftokenstotheownerTransactionsSenderbalanceis1000tokensTryingtosend50tokensto0xead9c93b79ae7c1591b1fb5323bd777e86e150d4Senderbalanceis50tokensTryingtosend50tokensto0xe5904695748fe4a84b40b3fc79de2277660bd1d3?Shouldtransfertokensbetweenaccounts(373ms)?Shouldfailifsenderdoesn’thaveenoughtokensSenderbalanceis1000tokensTryingtosend100tokensto0xead9c93b79ae7c1591b1fb5323bd777e86e150d4Senderbalanceis900tokensTryingtosend100tokensto0xe5904695748fe4a84b40b3fc79de2277660bd1d3?Shouldupdatebalancesaftertransfers(187ms)5passing(2s)
查看文檔來了解更多關于這個功能的信息。
7.部署到真實的網絡
基礎層區塊鏈Harmony加入Messari公開和透明度注冊表:基礎層區塊鏈Harmony在推特上宣布,其現在是加密數據提供商Messari公開和透明度注冊表的一部分。作為參與項目之一,Harmony承諾通過提供定期的項目披露和更新來提高透明度。[2020/8/15]
一旦準備好與其他人分享應用程序,你可能想做的是部署到一個實時網絡。這樣其他人就可以訪問到。
處理真金白銀的以太坊網絡被稱為主網(mainnet),還有其他不處理真金白銀的網絡,但確實能很好地模擬真實世界的場景,這些被稱為測試網(testnet),以太坊有多個測試網:Ropsten、Kovan、Rinkeby_和_Goerli。
在軟件層面,部署到testnet和部署到mainnet是一樣的。唯一不同的是連接的網絡。
由于我們使用了hardhat-deploy插件,并且我們已經編寫了部署腳本,現在只需要對部署到的網絡進行一些配置,就可以部署到真實網絡中。
正如我們的部署部分所解釋的那樣,你可以執行yarnhardhatdeploy,但它只部署在內存中模式的默認的網絡中,輸出如下:
Nothingtocompiledeploying"Token"(tx:0x259d19f33819ec8d3bd994f82912aec6af1a18ec5d74303cfb28d793a10ff683)...:deployedat0x5FbDB2315678afecb367f032d93F642f64180aa3with592983gasDonein3
}leturi=process
if(!uri||uri===''){if(networkName==='localhost'){return'http://localhost:8545';}return'';}if(uri
returnuri;}exportfunctiongetMnemonic(networkName?:string):string{if(networkName){constmnemonic=process
}constmnemonic=process
聲音 | CoinShares執行官:加密貨幣生態系統、市場和行業仍在快速增長:據CCN報道,CoinShares執行官Meltem Demirors表示,盡管加密市場的價值急劇下降,但加密貨幣生態系統、市場和行業仍在快速增長。Demirors稱,在服務于加密生態系統的公司中,價值仍在不斷增長。這個行業內成千上萬的人繼續花時間、精力和資金來幫助加密生態系統發展。加密領域的基金和資產管理公司雖然面臨壓力,但鑒于其較長的時間范圍和生存能力,從歷史角度看表現良好。預計這種趨勢將持續下去,特別是對于一些具有豐富經驗的、較大的、資本較好的經理人而言。他們能夠管理財務和分配策略,利用短期價格變動,同時保持長期投資前景。[2018/11/24]
returnmnemonic;}exportfunctionaccounts(networkName?:string):{mnemonic:string}{return{mnemonic:getMnemonic(networkName。;}
然后我們可以修改hardhat.config.ts文件,使其包含以下內容。
import{HardhatUserConfig}from'hardhat/types';import'hardhat-deploy';import'hardhat-deploy-ethers';import{node_url,accounts}from'./utils/network';constconfig:HardhatUserConfig={solidity:{version:'0.7.6',},networks:{rinkeby:{url:node_url('rinkeby'),accounts:accounts('rinkeby'),},},namedAccounts:{deployer:0,tokenOwner:1,},paths:{sources:'hide',},};exportdefaultconfig;
最后,我們需要設置環境變量,讓utils/networks.ts從.env中自動讀取。
創建一個.env,在其中寫上你自己的alchemyapi鍵和rinkeby的助記詞。
ETH_NODE_URI_RINKEBY=https://eth-rinkeby.alchemyapi.io/v2/MNEMONIC_RINKEBY=forrinkeby>
我們使用的是Alchemy,你可以使用任何其他指向以太坊節點或網關的URL。
要在Rinkeby上部署,你需要把rinkeby-ETH發送到要進行部署的地址。你可以從水龍頭那里獲得一些ETH的測試網。
你可以通過以下鏈接獲得一些ETH,用于其他測試網。
Kovan水龍頭
Rinkeby水龍頭
Goerli水龍頭
然后運行:
yarnhardhat--networkrinkebydeploy
如果一切順利,你應該看到這樣的內容:
Nothingtocompiledeploying"Token"(tx:0xb40879c3162e6a924cfadfc1027c4629dd57ee4ba08a5f8af575be1c751cd515)...:deployedat0x8bDFEf5f67685725BC0eD9f54f20A2A4d3FEDA98with475842gas
你還會看到在deployments/rinkeby文件夾中創建了一些文件。
最值得注意的是,你會看到deployments/rinkeby/Token.json,其中包含了你部署的合約信息,包括addres、abi以及用于創建合約的solidity輸入。
然后你可以用sourcify或etherscan來驗證它。
對于sourceify,你可以執行以下操作:
yarnhardhat--networkrinkebysourcify
這應該給你以下輸出。
verifyingToken(0x8bDFEf5f67685725BC0eD9f54f20A2A4d3FEDA98onchain4)...=>contractTokenisnowverified
對于etherscan,你可以執行以下工作(注意,你也可以通過env變量ETHERSCAN_API_KEY指定api密鑰):
yarnhardhat--networkrinkebyetherscan-verify--api-key
然后你應該看到。
verifyingToken(0x8bDFEf5f67685725BC0eD9f54f20A2A4d3FEDA98)...waitingforresult...=>contractTokenisnowverified
本翻譯由CellNetwork贊助支持。
來源:https://github.com/wighawag/tutorial-hardhat-deploy
參考資料
登鏈翻譯計劃:https://github.com/lbc-team/Pioneer
翻譯小組:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
這個安裝說明安裝git:https://www.atlassian.com/git/tutorials/install-git
node版本管理器(nvm):http://github.com/creationix/nvm
Git的Windows安裝程序:https://git-scm.com/download/win
此處:https://nodejs.org/dist/latest-v12.x
這里:https://github.com/nodesource/distributions#debinstall
nvm:http://github.com/creationix/nvm
相同的安裝說明:#windows
這里:https://nodejs.org/en/download/releases/
yarn:yarnpkg.com
創建任務:https://hardhat.org/guides/create-task.html
ERC20:https://learnblockchain.cn/tags/ERC20
Mocha:https://mochajs.org/
Chai:https://www.chaijs.com/
Wafflechaimatchers:https://getwaffle.io/
文檔:https://hardhat.org/hardhat-network/
Alchemy:https://alchemyapi.io/?r=7d60e34c-b30a-4ffa-89d4-3c4efea4e14b
Kovan水龍頭:https://faucet.kovan.network/
Rinkeby水龍頭:https://faucet.rinkeby.io/
Goerli水龍頭:https://goerli-faucet.slock.it/
CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9847358.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
盤點零知識證明代表性項目:如何影響和塑造區塊鏈生態系統?
Tags:TOKENKENTOKETOKJumpTokenFairyLand TokenRecovery Right Tokensmsntoken
Gate.io智能量化策略中心2020年9月上線以來,為廣大新手及專業用戶提供龐大的量化策略庫,目前已上線多種量化策略以及回測、一鍵跟單、排行榜等功能.
1900/1/1 0:00:00以太坊狀態模型的最大問題是:平均狀態增長與最壞情況狀態增長之間的巨大差異。本文系Vitalik在以太坊研究者論壇里提出的一個最新討論,該討論是繼以太坊研究科學家BarnabéMonnot提出的關.
1900/1/1 0:00:00導語:東漢末年,漢室傾頹,各方諸侯相互攻伐,漢室正統岌岌可危,你是遵循道義匡扶正統,還是揭竿而起成就另一番偉業呢?群雄四起,英才輩出,有忠義無雙的關羽,也有一夫當關的張飛,更有天神下凡的呂奉先.
1900/1/1 0:00:00尊敬的用戶:?? BKEXGlobalETP專區將于2021年4月8日15:00上線STMX3L、STMX3S、OGN3L、OGN3S.
1900/1/1 0:00:00親愛的用戶:幣安已完成“集國際婦女月福卡”、“流動性挖礦交易賽”活動的獎勵分發“集國際婦女月福卡”活動的獎勵可在用戶中心-錢包-分發記錄查看;“流動性挖礦交易賽”活動的獎勵可在我的-卡券中心查看.
1900/1/1 0:00:00多言不可與謀,多動不可與久處,交易與其沖動,還不如一動不動!大家好,我是席幕楓。心存陽光必有詩與遠方,認識我老席何懼再遇荒涼?席幕楓:4.8以太坊行情分析以太坊,日線斷崖收陰,昨日深度探低逼近2.
1900/1/1 0:00:00