hardhat + typescript合约部署测试

本文档详述如何利用Hardhat、Typescript、Waffle和Mocha来构建、测试和部署以太坊智能合约。从项目初始化、配置到合约编写和部署,每个步骤都有清晰的说明,包括配置hardhat多版本Solidity编译环境、设置合约路径、配置地址映射,以及使用hardhat-deploy进行合约部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hardhat + Typescript 智能合约的部署与测试

这篇文章主要介绍从零开始搭建Hardhat框架下使用typescrip进行合约的部署和测试

哪里有不足的地方请多指教

主要使用的框架和技术:

  • hardhat
  • yarn(当然也可用npm,只是我喜欢用yarn)
  • waffle
  • mocha

项目搭建

  1. 创建一个项目目录,并进行yarn初始化

    mkdir hardhat-example
    cd hardhat-example
    yarn init
    

    在这里插入图片描述

  2. 安装hardhat

    直接运行yarn add hardhat就可以了

  3. 初始化项目为hardhat+typescript项目

    1. 运行yarn hardhat init

    2. 选择Create an advanced sample project that uses TypeScript
      在这里插入图片描述

    3. 下面分别是

      选择项目跟目录

      是否创建.gitignore文件

      是否安装所需要的一些包

      直接敲回车就行

      注意:用yarn进行安装的时候有可能出现ethereum-waffle包装不上的问题,这时候这个包可以单独用npm进行安装

      到这里这个项目框架基本已经搭建完成了,下面就是对它进行各种配置了

项目配置

  1. 在项目跟目录下新建.env文件,用于配置与链和网络相关配置

    相应的配置也可以直接从.env.example文件拷贝过去替换成自己的

    ETHERSCAN_API_KEY=ABC123ABC123ABC123ABC123ABC123ABC1
    ROPSTEN_URL=https://ropsten.infura.io/v3/<YOUR ALCHEMY KEY>
    PRIVATE_KEY=0xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc1
    
  2. 安装hardhat部署插件hardhat-deployhardhat-deploy-ethers,并引入到hardhat.confit.ts中:

    yarn add hardhat-deploy hardhat-deploy-ethers
    
    import 'hardhat-deploy';
    import 'hardhat-deploy-ethers';
    
  3. 对配置hardhat.config.ts文件进行配置

    在文件中有一段task的代码,个人觉得用处不大就直接删除了

    task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
         
      const accounts = await hre.ethers.getSigners();
    
      for (const account of accounts) {
         
        console.log(account.address);
      }
    });
    

    一下配置均在hardhat.config.ts文件下config中

    const config: HardhatUserConfig = {
         }
    

    配置hardhat多版本solidity编译环境,还需要其他的话直接照着加就行

    solidity: {
         
        compilers: [{
         
          version: "0.8.0",
          settings: {
         
            optimizer: {
         
              enabled: true,
              runs: 200
            }
          }
        }, {
         
          version: "0.6.0",
          settings: {
         
            optimizer: {
         
              enabled: true,
              runs: 200
            }
          }
        }]
      },
    

    配置合约路径

      paths: {
         
        sources: "contracts"
      },
    

    配置地址对应的名称(主要用于部署时更方便调用部署地址)

      namedAccounts: {
         
        deployer: 0
      },
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值