hardhat创建ERC20到metamask钱包

通过hardhat创建ERC20 token代币并添加到metamask钱包

1、先注册Metamask小狐狸钱包

请添加图片描述

2、在vscode中下载hardhat

前提要有yarn,没有的话自行下载
1.yarn add --dev hardhat //下载hardhat
请添加图片描述
2.yarn hardhat //新建hardhat项目
请添加图片描述
3.选择Create javascript

3、导入openzeppelin

yarn add @openzeppelin/contracts
OpenZeppelin 是一个提供安全智能合约库的开源框架,里面有非常多的经过安全审计的代码。

4、在contracts下新建kokoToken.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
//导入openzeppelin中的ERC20合约
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract kokoToken is ERC20 {
    // 构造函数中设置代币的名称和符号
    constructor(string memory name, string memory symbol) ERC20(name, symbol) {
        // 初始铸造一定数量的代币到部署合约的地址
        // 这里示例铸造1000000个代币(根据ERC20的decimals,默认是18)
        _mint(msg.sender, 100 * (10 ** uint256(decimals())));
    }
}

5、新建deploy文件,并新建00-deploy.js文件

st { ethers, network, deployments, getNamedAccounts } = require("hardhat");
const { deploy, log } = deployments;
//部署kokoToken合约
async function main() {
  log(`start deploy contract `);
  //获取当前环境的chainId
  const chainId = network.config.chainId;
  log(`network name是:${chainId}`);

  const { deployer } = await getNamedAccounts();
  //   log(`deployer name是:${deployer}`);
  await deploy("kokoToken", {
    from: deployer,
    args: ["koko", "KO"],
    log: true,
    // waitConfirmations: 1,
  });

  // 如果在开发链上,加速时间以便进行投票
  if (network.name == "hardhat") {
    await moveBlocks(3);
  }

  const kokoToken = await ethers.getContractAt(
    "kokoToken",
    "0x5FbDB2315678afecb367f032d93F642f64180aa3"
  );

  //返回代币总量
  const totalSupply = await kokoToken.totalSupply();
  log(`totalSupply value is: ${totalSupply}`);

  //返回用户0的余额
  const balance = await kokoToken.balanceOf(deployer);
  log(`balance value is: ${balance}`);
  log(`00 end deploy contract ===================`);
}
/**
 * 将区块链状态前进指定数量的区块
 * @param {number} amount - 要前进的区块数量
 */
async function moveBlocks(amount) {
  for (let i = 0; i < amount; i++) {
    await network.provider.request({
      method: "evm_mine",
      params: [],
    });
  }
  console.log(`Moved ${amount} blocks`);
}
// 执行主函数
module.exports = main;

6、启动hardhat节点

终端输入:yarn hardhat node
请添加图片描述

7、在metamask中配置hardhat网络

请添加图片描述
填入下图的内容,点击save
请添加图片描述

8、导入hardhat本地网络的账户

请添加图片描述
请添加图片描述

9、将hardhat node节点的账户密钥复制进去

请添加图片描述
请添加图片描述

10、再将部署的kokotoken合约地址import进去

请添加图片描述
请添加图片描述

11、最终属于自己的token成功上传至钱包

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值