智能合约:3分钟开发ERC20 token(2)

0.前言

上一节我们讲到了开发智能合约的准备工作,以及在线编程平台remix
智能合约(1)

这一节讲解如何开发、发行一个代币,并具备包括代币铸造mint,转账transfer和销毁burn功能,并确保合约拥有者owner的权限。

1.代码编写

我们使用代码生成工具完成代码编写,生成网址如下:
ERC20代码生成网址

也可以直接复制下面代码到remix,代码如下:

c 复制代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";

contract MyToken is ERC20, ERC20Burnable, Ownable, ERC20Permit {
    constructor(address initialOwner)
        ERC20("MyToken", "MTK")//此处表示代币的名称和缩写
        Ownable(initialOwner)
        ERC20Permit("MyToken")
    {}

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}

本文重点放在理解ERC20的术语含义和工作过程中

2.功能解释

在remix虚拟机完成部署后,会出现下列外部可见的函数

黄色代表这些函数需要写入区块链,需要交易费用gas,

蓝色则代表这些函数仅读取数据,无需交易费用gas.

mint

首先是mint铸造功能

输入地址和铸造数量即可向当前账户铸造名为"my token"的代币100个

查询余额发现账号增加了100代币

transfer

其次是transfer转账功能,

向另一个地址转账20个代币,

查询余额发现只剩80代币

查询被转帐的账户,发现余额成功转入20代币。

burn

销毁代币burn,

在余额足够的情况下,可以直接使用burn函数销毁自己名下的代币,此处我们使用剩余80代币的账户,销毁20代币

查询余额,可见剩余60代币,说明销毁成功。

totalSupply

总体供应量,用于查询全区块链剩余的代币总量,由于我们铸造了100代币,又销毁了20代币,所以当前全网剩余80代币,其中A账户60代币,B账户20代币。

相关推荐
Joy T11 小时前
【Web3】智能合约质量保障工程:从单元测试到 Gas 效能优化
单元测试·log4j·web3·智能合约·hardhat
Joy T11 小时前
【Web3】NFT 元数据去中心化存储与智能合约集成实战
开发语言·web3·去中心化·区块链·php·智能合约·hardhat
竹林8182 天前
Web3前端开发:使用ethers.js监听智能合约事件
javascript·智能合约
财经汇报2 天前
Unloq发布SC+平台 包括智能合约解决清算难题
大数据·人工智能·智能合约
暴躁小师兄数据学院2 天前
【WEB3.0零基础转换笔记】Rust编程篇-第4讲:控制流
开发语言·笔记·rust·web3·区块链·智能合约
暴躁小师兄数据学院4 天前
【WEB3.0零基础转行笔记】Solidity编程篇-《Foundry基础》:第1讲:Foundry简易存储
web3·区块链·智能合约
迷藏4944 天前
**标题:发散创新:基于IPFS的去中心化文件存储与智能合约交互实战*
java·python·去中心化·智能合约·交互
好家伙VCC4 天前
# 发散创新:基于状态通道的以太坊智能合约高效交互实践在区块链应用开发中,**交易
java·python·区块链·智能合约
傻小胖7 天前
北大肖臻老师区块链课程完结反思和自我灵魂拷问
区块链·智能合约
迷藏4947 天前
# 发散创新:基于Solidity的NFT智能合约设计与部署实战在区块链技术飞速发展
java·区块链·智能合约