Lazy loaded image
从零构建ERC20 MINT DEMO
Words 5288Read Time 14 min
2025-8-22
2025-8-25
type
status
date
slug
summary
tags
category
icon
password
😀
项目梗概: 教你如何使用相关工具连接Metamask钱包并且使用ERC20合约来铸造代币。
项目分为前端和合约两个板块,内容难度偏入门。
notion image
 

👜 环境安装

Yarn: npm install yarn -g
Chrome 应用商店中安装MetaMask

📝 智能合约

安装相关依赖

notion image
选择TS项目后 一路回车到底
 

智能合约的编写

在contracts文件夹中新建AshCoin.sol文件
notion image
创建完成后需要下载相关依赖 npm install @openzeppelin/contracts
 

编译Solidity合约

在完成了合约的编写后,需要将其进行对应的编译
编译成功会生成合约的 ABI 文件进行调用。
编译后会生成以下文件(默认在 artifacts/ 目录中):
artifacts/ ├── contracts/ │ ├── AshCoin.sol/ │ │ ├── AshCoin.json # 包含ABI、字节码等完整信息 │ │ └── AshCoin.dbg.json # 调试信息 ├── build-info/ # 编译元数据 └── @openzeppelin/ # 依赖库的编译产物
 

快速构建合约方式

根据官方的低代码方式 仅需勾选对应的合约类型后即可生成对应的合约内容
notion image
 
相关合约函数作用可根据 OpenZeppelin官方文档进行对照学习
 

智能合约的测试

在智能合约部署上线之前,需要对编写的合约进行单元测试以保证合约能够正常跑通
在根目录下新建test文件夹,创建AshCoin.t.ts
notion image

编写测试单元

 

测试指令

在完成了测试单元的编写后,在终端输入相关指令后会对合约进行完整测试并给出反馈
notion image
如果能走到这一步,那么恭喜你。你的合约通过了测试已经能够正常进行部署,接下来就是进行前端页面的构建与合约进行交互。
 

📝 前端开发

框架安装

该项目的前端开发框架为NextJs,使用需要在了解React的基础上并结合官网的文档合并使用。Next文档地址:https://nextjs.org/
建议安装名称为:frontend 文件位置与contracts同级
notion image

静态设计

目标页面

能够在本地链上使用账户进行Coin的铸造
notion image
notion image

Mint出口

在app下中的page.tsx中编写Mint页面的出口
notion image
 

Navbar组件

该组件位于页面顶部,作用是为了展示相关页面路由以及用户的钱包连接(至关重要)
 

Mint组件

该组件核心功能为提供输入框用于调用合约中的铸造函数,通过钱包进行交易后达成代币的成功铸造,并展示账户的相关余额。
前置重点:
  1. 在本地链调用我们的合约之前 我们需要进行相关配置。打开contracts找到hardhat.config.ts
    1. 在Metamask配置好本地链并且创建自定义网络
      1. notion image
        notion image
    1. 在contracts的终端中输入 npx hardhat node 创建本地钱包地址
      1. notion image
        启动成功后会为你提供20个本地账户,选择第一条Account0的地址进行复制,然后导入到小狐狸钱包当中(选择私钥导入)
        notion image
        notion image
    1. 在contracts的终端中输入 npx hardhat run ./scripts/deploy.ts --network localhost,将合约部署在本地链上,并复制其中的合约地址并赋值于Mint.tsx中的ContractAddress
      1. notion image
    1. 完成以上操作后,便可以在frontend终端中启动项目
     
    上一篇
    从零构建LaunchPad平台[一](Airdrop)
    下一篇
    纪念出了一颗非洲之星