区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > 加密货币 > 正文

TOKEN:hardhat 教程及 hardhat-deploy 插件使用_RIN

作者:

时间:

译文出自:登链翻译计划

译者:翻译小组

校对: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的附加信息以及如何构建测试。我们建议通过阅读。

CoinShares:上周加密基金资金流出额达1.1亿美元:金色财经报道,CoinShares表示,截至3月11日的一周内,数字资产投资产品出现了1.1亿美元的资金流出,而此前一周的资金流入量达到了三个月来的最高值。按资产类别划分,比特币基金流出6990万美元,以太坊流出5060万美元,其他加密货币的流量则是小幅增长。

值得注意的是,资金流出主要集中在一个特定的基金上,即Purpose Bitcoin ETF(BTCC),该基金净撤资1.144亿美元。

截至3月4日的一周,整体净流入1.268亿美元,其中Purpose基金获得了1.303亿美元的新现金净流入。CoinShares Physical、3IQ和Proshares上周都有少量资金流入,平衡了Purpose Bitcoin ETF、CoinShares XBT和21 Shares的一些资金流出。(Coindesk)[2022/3/15 13:56:42]

但首先我们要添加一些实用函数,我们将在该测试套件中使用。

在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

以太坊开发工具平台 Hardhat 将以非营利方式运作:2月10日消息,以太坊开发工具平台 Hardhat 开发公司Nomic Labs计划转变为非营利组织,将更名为“Nomic基金会”。Hardhat目标筹集 3000 万美元,目前已获得1500 万美元赠款,以太坊基金会、以太坊联合创始人 Vitalik Buterin 以及 Coinbase、Consensys、Andreessen Horowitz、The Graph、Polygon、Chainlink、a_capital 和 Kaszek Ventures等加密投资或业务机构为捐赠者。

据悉,Nomic Labs 于2018 年推出。为实现其 3000 万美元筹款目标,该组织计划向几个去中心化自治组织 (DAO) 提交资金提案。 (Techcrunch)[2022/2/10 9:41:51]

);});describe("Transactions",function(){it("Shouldtransfertokensbetweenaccounts",asyncfunction(){const{Token,users,tokenOwner}=awaitsetup();//Transfer50tokensfromownertousersawaittokenOwner

);it("Shouldfailifsenderdoesn’thaveenoughtokens",asyncfunction(){const{Token,users,tokenOwner}=awaitsetup();constinitialOwnerBalance=awaitToken

);it("Shouldupdatebalancesaftertransfers",asyncfunction(){const{Token,users,tokenOwner}=awaitsetup();constinitialOwnerBalance=awaitToken

);});});

下面是yarnhardhattest的输出。

$yarnhardhattestTokencontractDeployment?Shouldsettherightowner?ShouldassignthetotalsupplyoftokenstotheownerTransactions?Shouldtransfertokensbetweenaccounts(199ms)?Shouldfailifsenderdoesn’thaveenoughtokens?Shouldupdatebalancesaftertransfers(111ms)5passing(1s)

ProShares 计划推出专注于元宇宙的ETF:金色财经报道,美国专业交易所交易产品 (ETP) 提供商ProShares周二向美国证券交易委员会(SEC)提交申请,计划推出一个专注于元宇宙的交易所交易基金(ETF),名为ProShares元宇宙主题ETF(ProShares Metaverse Theme ETF)。

如果获得批准,这只ETF将跟踪Solactive元宇宙主题指数(Solactive Metaverse Theme Index)的表现。该指数由提供或使用有关元宇宙的产品和服务的技术的公司组成。苹果、Meta和英伟达是该指数权重最高的股票。(彭博社)[2021/12/29 8:10:40]

请记住,当你运行yarnhardhattest时,如果合约在你上次运行测试后发生了变化,合约将被重新编译。

6.使用Hardhat网络进行调试

Hardhat内置了Hardhat网络,这是一个专为开发设计的本地以太坊网络。它允许你部署合约,运行测试和调试代码。这是Hardhat连接到的默认网络,所以你不需要设置任何东西就可以工作,只需要简单运行测试。

Solidityconsole

当你运行测试时,日志输出将显示:

$yarnhardhattestTokencontractDeployment?Shouldsettherightowner?ShouldassignthetotalsupplyoftokenstotheownerTransactionsSenderbalanceis1000tokensTryingtosend50tokensto0xead9c93b79ae7c1591b1fb5323bd777e86e150d4Senderbalanceis50tokensTryingtosend50tokensto0xe5904695748fe4a84b40b3fc79de2277660bd1d3?Shouldtransfertokensbetweenaccounts(373ms)?Shouldfailifsenderdoesn’thaveenoughtokensSenderbalanceis1000tokensTryingtosend100tokensto0xead9c93b79ae7c1591b1fb5323bd777e86e150d4Senderbalanceis900tokensTryingtosend100tokensto0xe5904695748fe4a84b40b3fc79de2277660bd1d3?Shouldupdatebalancesaftertransfers(187ms)5passing(2s)

阿布扎比全球市场前FSRA负责人Richard Teng加入BAS咨询委员会:新加坡区块链协会(BAS)宣布,任命阿布扎比全球市场(ADGM)金融服务监管局(FSRA)前CEORichardTeng为咨询委员会成员。目前BAS咨询委员会共有三名成员。据悉,RichardTeng曾担任新加坡交易所(SGX)的首席监管官,负责监管上市、交易、清算和结算领域的政策、框架和规则的制定。在新加坡交易所任职之前,他是新加坡金融管理局的公司财务总监,负责制定和管理《证券和期货法》,该法涉及证券、商业和房地产投资信托以及集资计划的发行。(CoinDesk)[2021/8/2 1:29:08]

查看文档来了解更多关于这个功能的信息。

7.部署到真实的网络

一旦准备好与其他人分享应用程序,你可能想做的是部署到一个实时网络。这样其他人就可以访问到。

处理真金白银的以太坊网络被称为主网(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

DIGIPHARM宣布DPH测试网从以太坊迁移至Terra:5月20日消息,基于区块链的医疗保健合约平台DIGIPHARM宣布,DPH测试网从以太坊迁移到Terra。最后阶段将需要进行安全审计,并随后宣布兑换(swap)日期。[2021/5/20 22:26:01]

returnuri;}exportfunctiongetMnemonic(networkName?:string):string{if(networkName){constmnemonic=process

}constmnemonic=process

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.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

盘点零知识证明代表性项目:如何影响和塑造区块链生态系统?

标签:KENTOKENRINHATSlash TokeniBG Tokenboringdao币是哪个国家CHAT

加密货币热门资讯
888:老崔说币:比特币蓄能足够,今日必破6W大关?_LCS币

??大家好,我是来自CKcoin平台首席分析师老崔说币,也是你们的朋友老崔说币lcsb18888,老崔说币公众号同步专注数字货币行情分析,争取为广大币友传递最有价值的币市信息.

CSB:老崔说币:以太变盘开始,请停止进场!_杭州女子花300万买比特币yhhh

大家好,我是来自CKcoin平台首席分析师老崔说币,也是你们的朋友老崔说币lcsb18888,老崔说币公众号同步专注数字货币行情分析,争取为广大币友传递最有价值的币市信息.

BCH:牛市胆要肥!集中火力发射子弹,不要太分散_BSV

1、政策及市场指标 其他数据变化不大,但是资金回流的幅度比较客观,有助于继续走高。不过,近期炮情况比较多,资金流入流出的变化非常大而且频繁,说明资金换手率也比较高.

CON:老李解币:高空策略区间把握可斩获900点利润空间_BTAF Token

专业独立客观审慎,参与实战交易,具有丰富临盘经验。团队长期专注指导以太坊、比特币,擅长趋势交易,对资金规划、仓位管理及风险控制有丰富经验,准确率长期稳定在80%,欢迎免费实时跟单体验,不额外收取.

Gate.io:Gate.io投票上币空投福利第113期—DLP Duck Token (DUCK2),$15,000美元DUCK2空投福利开启_gate.io怎么卖币

4月9日12:00—4月16日12:00我们将开启DLPDuckToken(DUCK2)超级空投福利,$15,000美元DUCK2等你来拿!新用户请点击注册Gate.io并参与活动.

CellETF:美联储FOMC公布会议纪要

美联储FOMC公布货币政策会议纪要:通胀风险增加,但目前总体平衡|CellETF今日美联储公布了3月份的FOMC会议纪要,再次强调了短期内维持超宽松货币政策的态度.