6 发行一个ERC20 Token

Author Avatar
NENEIIII Nov 01, 2022
  • Read this article on other devices
// https://learnweb3.io/courses/9a3fafe4-b5eb-4329-bdef-97b2aa6aacc1/lessons/7296fe93-c7c0-4ea6-a986-ddb40274227f

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

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
// “is” means 是ERC20的一个实例instance 可以理解成继承
contract LW3Token is ERC20 {
    // 类似于构造函数 在合约第一次部署时被执行
    // 后面这个ERC20是我们继承的ERC20合约的构造函数,因此我们需要用得到的_name _symbol为它初始化
    constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) {
        // 在部署的时候为当前的主人(发起transaction的address)制造一些tokens
        // 注意solidity中不支持浮点数(小数),他的计数方式是相对于最小数的描述方式:如ERC20 tokens默认为18位,这里的10*10**18代表的是10 full tokens
        _mint(msg.sender, 10 * 10 ** 18);
    }
}
// 部署在Goerli上后(也可选用其他测试网)可以去https://goerli.etherscan.io/ 查看(复制合约地址进行搜索)
// 查看metamask钱包会发现刚刚发行的个人代币并没有显示出来,
// 这是因为一般只有有名的那几个ERC20代币会被自动检测,像个人发行的这种只能手动添加
// ?为什么显示为0呢

image-20221114171446024

原来是由于.sol文件名和里面的contract名不一致(编译并不会报错)

修改后成功显示10

image-20221115123933663