dapp开发之hardhat框架实践(基础篇)

前提:安装node 版本>12,npm, git等
1.创建文件夹,创建之后用自己熟悉的工具打开,例如:webstorm
2.打开之后运行“npm init -y” ,会在控制台打印:

{
“name”: “76-learn-hardhat”,
“version”: “1.0.0”,
“description”: “”,
“main”: “index.js”,
“scripts”: {
“test”: “echo “Error: no test specified” && exit 1”
},
“keywords”: [],
“author”: “”,
“license”: “ISC”
}

3.运行npm install --save-dev hardhat,成功之后如下:

注意:报错解决办法:npm install --save-dev “@nomiclabs/hardhat-ethers@^2.0.0” “ethereum-waffle@^3.2.0” “ethers@^5.0.0”
在这里插入图片描述
4.这样就成功创建了hardhat项目,接下来我们可以用npx(npm子命令)运行测试 npx hardhat,弹出下图证明成功
在这里插入图片描述5.期间提示你安装一些插件,进行安装
在这里插入图片描述
6.可用命令npx hardhat --help在这里插入图片描述7.编译合约用npx hardhat compile
8.接下来进行重新编写个小的代币合约

//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "hardhat/console.sol";

contract Token {
    string public name='my token';
    string public symbol = 'Mtn';
    uint256 public total = 100000;
    address public owner;
    mapping(address =>uint) balances;
    constructor() {
        owner = msg.sender;
        balances[msg.sender] =total;
    }

    function tranfer(address to,uint amount) external{
        balances[msg.sender] -=amount;
        balances[to] +=amount;
    }

    function getamount(address account) view external returns(uint a){
        a = balances[account];
    }
}

9.编译后进行编写测试脚本:

const { expect } = require("chai");
const { ethers } = require("hardhat");

describe("Token", function () {
  let Token, token, owner,address
  beforeEach(async ()=>{
    Token = await  ethers.getContractFactory('Token');
    token = await  Token.deploy();//部署
    [owner,address,] = await  ethers.getSigners();
  })

  describe('test',()=>{
    it('所有者', async ()=> {
        expect(await token.owner()).to.equal(owner.address);
    })

  })
});

10.运行命令进行测试:npx hardhat test

注意:第一次运行可能报以下错误:Error: Cannot find module ‘chai’ 解决办法:npm install
–save-dev chai

运行测试成功如下图:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值