Web-3.0(Solidity)ERC-20

news2025/2/26 18:49:37

🚀 发行自己的加密货币(ERC-20 代币)

你可以使用 Solidity 编写 ERC-20 智能合约 来发行自己的加密货币,然后部署到 以太坊(Ethereum)BNB/Polygon 等 EVM 兼容链

📌 1. ERC-20 代币是什么?

ERC-20 是 以太坊标准代币协议,适用于 DApp、DeFi、ICO 等应用
它定义了一些标准函数,例如:

  • totalSupply() 👉 代币总供应量
  • balanceOf(address) 👉 查询地址余额
  • transfer(address, amount) 👉 代币转账
  • approve() & transferFrom() 👉 允许代理转账(如 DEX、质押)

ERC-20 适用于创建自己的 Token,如 USDT、UNI、SHIBA

📌 2. 编写 ERC-20 代币智能合约

创建 MyToken.sol,粘贴以下代码:

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

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply * (10 ** uint256(decimals())));
    }
}

🔹 代码解析

  • import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 👉 使用 OpenZeppelin ERC-20 标准库
  • ERC20("MyToken", "MTK") 👉 代币名称 MyToken,符号 MTK
  • _mint(msg.sender, initialSupply * (10 ** uint256(decimals()))); 👉 生成 initialSupply 数量的代币

📌 3. 在 Remix IDE 部署(测试网 & 主网)

✅ 方法 1:本地测试(免费)

  1. 打开 Remix IDE
  2. 新建 MyToken.sol,粘贴 Solidity 代码
  3. 编译合约
    • 选择 Solidity Compiler(🛠️)
    • 版本 0.8.0+
    • 点击 Compile
  4. 部署合约
    • 选择 "JavaScript VM (London)"(本地虚拟机,免费)
    • 输入初始供应量(如 1000000
    • 点击 "Deploy"
  5. 测试代币
    • 运行 totalSupply(),查看总供应量
    • 运行 balanceOf(你的地址),查看余额

本地测试,不消耗 ETH!


✅ 方法 2:以太坊测试网(Goerli / Sepolia)

  1. 获取测试 ETH
    • Goerli Faucet
    • Sepolia Faucet
  2. MetaMask 连接测试网
    • 切换到 Goerli / Sepolia
  3. 在 Remix 选择 Injected Provider
    • 选择 Injected Provider - MetaMask
    • 点击 Deploy
    • MetaMask 确认交易
  4. 获取代币地址
    • 在 Remix 终端找到合约地址
    • 添加到 MetaMask,查看你的代币

测试网部署,使用测试 ETH,完全免费!


✅ 方法 3:以太坊主网 / BNB / Polygon(需要 ETH 交 Gas 费)

  1. 准备 ETH / BNB / MATIC
    • 以太坊(Ethereum):需要 ETH
    • BNB Chain(BSC):需要 BNB
    • Polygon(MATIC):需要 MATIC
  2. 选择 Injected Provider
    • 连接 MetaMask(主网)
  3. 部署合约
    • Deploy 合约(需要 Gas 费)
    • 交易完成后,查看合约地址
  4. 添加代币到 MetaMask
    • 复制合约地址
    • 在 MetaMask "导入代币" 并粘贴地址
    • 你的代币将出现在 MetaMask 钱包中

适用于正式上线,但需要真 ETH / BNB!

📌 4. 交互 & 空投代币

如果你想给别人发送你的代币,可以调用 transfer()

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply * (10 ** uint256(decimals())));
    }

    // 空投代币
    function airdrop(address recipient, uint256 amount) public {
        require(balanceOf(msg.sender) >= amount, "Not enough tokens");
        _transfer(msg.sender, recipient, amount);
    }
}

调用:

await contract.airdrop("0xRecipientAddress", ethers.utils.parseUnits("100", 18));

方式环境是否收费
本地测试(Remix VM)JavaScript VM免费
以太坊测试网(Goerli / Sepolia)测试网免费(需测试 ETH)
以太坊主网 / BSC / Polygon真实区块链需要 ETH / BNB 交 Gas 费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2286974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据相关职位介绍之一(数据分析,数据开发,数据产品经理,数据运营)

大数据相关职位介绍之一 随着大数据、人工智能(AI)和机器学习的快速发展,数据分析与管理已经成为各行各业的重要组成部分。从互联网公司到传统行业的数字转型,数据相关职位在中国日益成为推动企业创新和提升竞争力的关键力量。以…

无人机红外热成像:应急消防的“透视眼”

无人机红外热成像:应急消防的“透视眼” 亲爱的小伙伴们,每年一到夏天,应急消防的战士们就像上紧了发条的闹钟,时刻准备应对各种灾害。炎热天气让火灾隐患“蹭蹭”往上涨,南北各地还有防洪救灾、台风、泥石流等灾害轮…

【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)

羑悻的小杀马特.-CSDN博客羑悻的小杀马特.擅长C/C题海汇总,AI学习,c的不归之路,等方面的知识,羑悻的小杀马特.关注算法,c,c语言,青少年编程领域.https://blog.csdn.net/2401_82648291?typebbshttps://blog.csdn.net/2401_82648291?typebbshttps://blog.csdn.net/2401_8264829…

AI在自动化测试中的伦理挑战

在软件测试领域,人工智能(AI)已经不再是遥不可及的未来技术,而是正在深刻影响着测试过程的现实力量。尤其是在自动化测试领域,AI通过加速测试脚本生成、自动化缺陷检测、测试数据生成等功能,极大提升了测试…

手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码)

手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码) 目录 手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码)Stable Diffusion 原理图Stable Diffusion的原理解释Stable Diffusion 和Di…

新版231普通阿里滑块 自动化和逆向实现 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向过程 补环境逆向 部分补环境 …

HTML一般标签和自闭合标签介绍

在HTML中,标签用于定义网页内容的结构和样式。标签通常分为两类:一般标签(也称为成对标签或开放闭合标签)和自闭合标签(也称为空标签或自结束标签)。 以下是这两类标签的详细说明: 一、一般标…

Eureka 服务注册和服务发现的使用

1. 父子工程的搭建 首先创建一个 Maven 项目&#xff0c;删除 src &#xff0c;只保留 pom.xml 然后来进行 pom.xml 的相关配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xs…

白嫖DeepSeek:一分钟完成本地部署AI

1. 必备软件 LM-Studio 大模型客户端DeepSeek-R1 模型文件 LM-Studio 是一个支持众多流行模型的AI客户端&#xff0c;DeepSeek是最新流行的堪比GPT-o1的开源AI大模型。 2. 下载软件和模型文件 2.1 下载LM-Studio 官方网址&#xff1a;https://lmstudio.ai 打开官网&#x…

《Origin画百图》之同心环图

《Origin画百图》第四集——同心环图 入门操作可查看合集中的《30秒&#xff0c;带你入门Origin》 具体操作&#xff1a; 1.数据准备&#xff1a;需要X和Y两列数据 2. 选择菜单 绘图 > 条形图&#xff0c;饼图&#xff0c;面积图: 同心圆弧图 3. 这是绘制的基础图形&…

蓝牙技术在物联网中的应用有哪些

蓝牙技术凭借低功耗、低成本和易于部署的特性&#xff0c;在物联网领域广泛应用&#xff0c;推动了智能家居、工业、医疗、农业等多领域发展。 智能家居&#xff1a;在智能家居系统里&#xff0c;蓝牙技术连接各类设备&#xff0c;像智能门锁、智能灯泡、智能插座、智能窗帘等。…

简易计算器(c++ 实现)

前言 本文将用 c 实现一个终端计算器&#xff1a; 能进行加减乘除、取余乘方运算读取命令行输入&#xff0c;输出计算结果当输入表达式存在语法错误时&#xff0c;报告错误&#xff0c;但程序应能继续运行当输出 ‘q’ 时&#xff0c;退出计算器 【简单演示】 【源码位置】…

自动化运维的未来:从脚本到AIOps的演进

点击进入IT管理资料库 一、自动化运维的起源&#xff1a;脚本时代 &#xff08;一&#xff09;脚本在运维中的应用场景 在自动化运维的发展历程中&#xff0c;脚本扮演着至关重要的角色&#xff0c;它作为最初的操作入口&#xff0c;广泛应用于诸多日常运维工作场景里。 在系统…

线程池以及在QT中的接口使用

文章目录 前言线程池架构组成**一、任务队列&#xff08;Task Queue&#xff09;****二、工作线程组&#xff08;Worker Threads&#xff09;****三、管理者线程&#xff08;Manager Thread&#xff09;** 系统协作流程图解 一、QRunnable二、QThreadPool三、线程池的应用场景W…

联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸

晚上23点10分前下单&#xff0c;第二天上午显示屏送到&#xff0c;检查外包装没拆封过。这个屏幕左下方有几个按键&#xff0c;按一按就开屏幕、按一按就关闭屏幕&#xff0c;按一按方便节省时间&#xff0c;也支持阅读等模式。 显示屏是 &#xff1a;AOC 27英寸 2K高清 100Hz…

C++ deque(1)

1.deque介绍 deque的扩容不像vector那样麻烦 直接新开一个buffer 不用重新开空间再把数据全部移过去 deque本质上是一个指针数组和vector<vector>不一样&#xff0c;vector<vector>本质上是一个vector对象数组&#xff01;并且vector<vector>的buffer是不一…

Brightness Controller-源码记录

Brightness Controller 亮度控制 一、概述二、ddcutil 与 xrandr1. ddcutil2. xrandr 三、部分代码解析1. icons2. ui3. utilinit.py 一、概述 项目&#xff1a;https://github.com/SunStorm2018/Brightness.git 原理&#xff1a;Brightness Controlle 是我在 Ubuntu 发现上调…

Java8_StreamAPI

Stream 1.创建流 1.1 集合创建流 List<String> list List.of("a", "b", "c"); Stream<String> stream list.stream(); stream.forEach(System.out::println);1.2 数组创建流 String[] array {"a","b",&qu…

【架构面试】二、消息队列和MySQL和Redis

MQ MQ消息中间件 问题引出与MQ作用 常见面试问题&#xff1a;面试官常针对项目中使用MQ技术的候选人提问&#xff0c;如如何确保消息不丢失&#xff0c;该问题可考察候选人技术能力。MQ应用场景及作用&#xff1a;以京东系统下单扣减京豆为例&#xff0c;MQ用于交易服和京豆服…

OpenEuler学习笔记(十六):搭建postgresql高可用数据库环境

以下是在OpenEuler系统上搭建PostgreSQL高可用数据环境的一般步骤&#xff0c;通常可以使用流复制&#xff08;Streaming Replication&#xff09;或基于Patroni等工具来实现高可用&#xff0c;以下以流复制为例&#xff1a; 安装PostgreSQL 配置软件源&#xff1a;可以使用O…