如何创建和部署一个ERC20代币

  • QuickNode
  • 发布于 2025-01-21 23:22
  • 阅读 21

本文详细介绍了如何创建和部署ERC-20代币,包括ERC-20标准的历史、功能和使用案例,以及如何使用Remix.IDE和OpenZeppelin库来编写和部署智能合约。

概述

2015 年以太坊网络的发布在开发者社区中引起了很大的轰动,并在网络上催生了许多代币。最初,代币开发没有任何模板或指南。这导致了各种代币之间的差异很大。为了使这种多样性有序化,社区提出了 ERC-20 标准,以使所有代币更加统一。

更喜欢视频教程吗?跟随 Radek 学习如何在 15 分钟内创建和部署一个 ERC20 代币。

如何创建和部署一个 ERC20 代币 - YouTube

QuickNode

131K 订阅者

如何创建和部署一个 ERC20 代币

QuickNode

搜索

信息

购物

点击取消静音

如果播放没有立即开始,请尝试重启设备。

你已退出登录

你观看的视频可能会被添加到电视的观看历史中,并影响电视推荐。为避免这种情况,请取消并在电脑上登录 YouTube。

取消确认

分享

包含播放列表

检索分享信息时出错。请稍后再试。

稍后观看

分享

复制链接

在 YouTube 上观看

0:00

/ •直播

在 YouTube 上观看

订阅我们的 YouTube 频道以获取更多视频!订阅

你将做什么

  • 了解 ERC-20 代币及其用例
  • 使用 Remix.IDE 创建并部署一个 ERC-20 代币

你需要什么

  • 一个 web3 钱包(例如,MetaMask、Coinbase Wallet、Phantom 或兼容 WalletConnect 的钱包)
  • 测试 ETH(你可以在 Multi-Chain QuickNode Faucet 获取一些
  • 一个现代网页浏览器(例如,Chrome)

什么是 ERC-20 代币?

ERC 代表以太坊征求意见,20 是提案标识号。ERC-20 旨在改进以太坊网络。

ERC-20 是最重要的 ERC 之一。它已成为在以太坊区块链网络上编写智能合约的技术标准,用于代币实现。ERC-20 包含一组所有基于以太坊的代币必须遵循的规则。

ERC-20 将代币定义为可以发送/接收并具有价值的基于区块链的资产。ERC-20 代币在许多方面类似于比特币和莱特币。然而,最显著的区别在于,ERC-20 代币不是运行在自己的区块链网络上,而是运行在以太坊的区块链网络上,并使用 gas 作为交易费用。

在 ERC-20 出现之前,每个创建代币的人都必须重新发明轮子,这意味着所有代币都彼此不同。例如,如果开发者想要与另一个代币合作,由于缺乏任何特定的结构或指南来构建新代币,他们必须理解该代币的整个智能合约代码。这对钱包和交易平台来说尤其痛苦——添加不同类型的代币需要开发者通过每个代币的代码并理解它,以便在他们的平台上处理这些代币。不用说,在任何应用程序中添加新代币都相当困难。如今,钱包和交易所使用 ERC-20 标准将各种标准化代币集成到他们的平台上,并促进 ERC-20 代币与其他代币之间的轻松交换。ERC-20 代币标准使得代币之间的交互几乎无缝且无痛。

ERC-20 代币的关键点

标准化功能: ERC-20 代币遵循一组特定的标准,这意味着它们有一套共同的规则和功能。这包括代币如何转移、交易如何批准、用户如何访问代币的数据以及代币的总供应量。

智能合约和 DeFi: ERC-20 代币中智能合约的使用使得复杂金融操作的自动化和执行成为可能。这对于 DeFi 平台至关重要,这些代币可以代表各种金融工具,如贷款或流动性池中的股份。

互操作性: 由于 ERC-20 代符遵循相同的标准,它们可以轻松互换,并且可以与以太坊网络上的其他符合 ERC-20 的代币和应用程序无缝协作。这种标准化简化了创建新代币的过程,并使它们与现有的钱包、交易所和其他服务即时兼容。

用例: ERC-20 代币可以代表广泛的资产或实用工具。例如,ERC-20 代币可以担任多种角色,如贷款的抵押品、收益农业中的生息资产,以及去中心化自治组织(DAO)中的治理代币,授予投票权。

可转移性和交换: 这些代币可以作为支付从一个账户转移到另一个账户,类似于比特币等加密货币,并且可以在各种加密货币交易所进行交易。

ERC-20 是创建新代币的标准或指南。该标准定义了智能合约应实现的六个强制性功能和三个可选功能。

强制性功能如下所示,并附有解释。

  • totalSupply:定义代币总供应量的方法;当达到此限制时,智能合约将拒绝创建新代币。
  • balanceOf:返回钱包地址拥有的代币数量的方法。
  • transfer:从总供应量中取出一定数量的代币并将其给予用户的方法。
  • transferFrom:另一种类型的转移方法,用于在用户之间转移代币。
  • approve:此方法验证智能合约是否允许向用户分配一定数量的代币,考虑到总供应量。
  • allowance:此方法与批准方法完全相同,只是它检查一个用户是否有足够的余额向另一个用户发送一定数量的代币。

除了下面列出的强制性功能外,功能是可选的,但它们提高了代币的可用性。

  • name:返回代币名称的方法。
  • symbol:返回代币符号的方法。
  • decimals:返回代币使用的小数位数的方法。它用于定义代币的最小单位。例如,如果 ERC-20 代币的 decimals 值为 6,这意味着代币可以分成最多六位小数。

如果你对面向对象编程有所了解,你可以将 ERC-20 比作一个接口。如果你想让你的代币成为 ERC-20 代币,你必须实现 ERC-20 接口,这会迫使你实现这 6 个方法。

创建我们自己的代币

现在我们知道什么是 ERC-20 代币以及它们如何工作,让我们看看如何构建和部署我们自己的代币。

获取测试 ETH

要开始在以太坊 Sepolia 测试网上部署你的合约,你需要安装 MetaMask 浏览器扩展或使用另一个兼容 web3 的钱包,如 Phantom 或 WalletConnect。一旦你的钱包设置好,你需要获取一些测试 ETH。这可以从 QuickNode Multi-Chain Faucet 专门为以太坊 Sepolia 网络获取。只需导航到他们的网站,连接你的钱包或输入你的钱包地址,然后继续。你将有一个选项可以分享一条推文以获得额外奖励。如果你选择不这样做,你可以选择“No thanks, just send me 0.05 ETH”选项来接收你的测试 ETH。

注意:你需要至少 0.001 ETH 的以太坊主网余额才能有资格使用 faucet。

QuickNode Multi-Faucet Chain

编写智能合约

以太坊区块链上已经有许多由不同团体开发的符合 ERC20 的代币在运行。这些实现各不相同,有些专注于降低 gas 成本,而其他则优先考虑增强安全性。为了获得稳健和安全的实现,许多开发者选择使用 OpenZeppelin 的 ERC20 代币标准。OpenZeppelin 提供了一个经过良好测试、社区审计的可重用智能合约库,其中包括一个可靠且安全的 ERC20 代币框架,使其成为确保代币开发合规性和安全性的首选。

为了简便和安全,我们将使用 OpenZeppelin ERC-20 合约来创建我们的代币。使用 OpenZeppelin,我们不需要编写整个 ERC-20 接口。相反,我们可以导入库合约并使用其功能。

前往 Ethereum Remix IDE 并创建一个新的 Solidity 文件,例如 - MyToken.sol

将以下代码粘贴到你的新 Solidity 脚本中:

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

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

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

上述代码的解释:

  • SPDX-License-Identifier 注释指定了合约发布的许可证。
  • pragma 指令声明了要使用的编译器版本。
  • 从 OpenZeppelin 导入的 ERC20 合约被用作基础。
  • MyToken 是你的合约名称,它继承了 ERC20 合约。
  • constructor 函数初始化了你的代币,带有名称(" MyToken")和符号(" MTK")。
  • constructor 中的 _mint 函数铸造了初始供应量的代币。在此示例中,铸造了 100 万个代币并分配给部署合约的地址。代币数量由 decimals 值调整,该值在 OpenZeppelin 实现中默认为 18。

由于我们从 OpenZeppelin 导入了 ERC20 智能合约,并且 MyToken 合约继承了 ERC20 合约,因此不需要定义所有功能。ERC20 合约中定义的所有功能都被导入到 MyToken 合约中。如果你想查看更深入的完整 ERC-20 代码,请查看此处的文件 here

现在,花点时间根据你自己的详细信息自定义智能合约。你可以通过更新以下部分来更新代币名称和符号 - ERC20("MyToken", "MT")

部署

完成自定义智能合约后,继续编译它。

步骤 1: 点击 Solidity 编译器 按钮。检查编译器版本和所选合约。由于智能合约中的 pragma solidity ^0.8.20; 行,编译器版本应至少为 0.8.20。然后,点击 Compile MyToken.sol 按钮。如果一切顺利,你将在 Compile 按钮上看到一个绿色勾号。

Remix Compile

步骤 2: 转到 Deploy & Run Transactions 标签。对于部署,在 Environment 下使用 Injected Provider 选项。在部署之前,确保你的 MetaMask 设置为 Sepolia 测试网,并且 MyToken 合约是所选的要部署的合约。最后,点击 Deploy 按钮以部署你的合约。

如果你不确定如何更改网络,打开 MetaMask 扩展,点击左上角的网络选择器,然后选择 Sepolia。如果你没有看到它,请确保启用了 Show test networks 选项。如果你想了解如何将你的 QuickNode RPC URL 添加到 MetaMask,请查看此 QuickNode 指南

Remix Deployment

如果在部署之前收到错误消息 - “This contract may be abstract”,请确保在 Contract 标签下选择了适当的合约。

步骤 3: 在 MetaMask 中确认交易:

Metamask transaction confirmation

就是这样!你的代币合约现在已部署在以太坊的 Sepolia 测试网上!

现在,让我们与它进行交互。点击“Deployed Contracts”部分下合约名称旁边的箭头(>)以查看合约的功能。然后,点击 name 按钮,你应该会看到你在合约中自定义的名称。随意尝试其他功能。

提示

在 Remix.IDE 上,功能根据其性质和效果在界面中进行了颜色编码:

  • 蓝色按钮功能:这些代表 constantpure 功能。点击这些按钮不会启动新交易或更改合约的状态。它们只从合约中返回一个值,并且不会产生任何 gas 费用。

  • 橙色按钮功能:这些是 non-payable 功能,它们会更改合约的状态但不接受以太币。激活这些功能会生成一个交易,这意味着它们将花费 gas。

  • 红色按钮功能:带有红色按钮的功能是 payable 的,可以创建接受以太币的交易。这些交易的值在“Value”字段中输入,位于“Gas Limit”字段下方。这些功能在执行时也会产生 gas 费用。

Remix Deployed Contracts

要在区块链浏览器上查看你的合约,这是一个用于分析各种区块链数据的初学者友好工具,请转到 Etherscan Sepolia Explorer 并搜索你的合约地址。

你将在 Token Tracker 部分下看到你的代币名称和代币符号。

Etherscan Sepolia Contract

现在,点击你的代币名称。打开的页面显示你的代币的名称、符号、最大总供应量和小数位数信息。

Etherscan Sepolia Token

如果你想在 MetaMask 中查看你的代币,请使用合约名称旁边的复制按钮复制已部署合约的地址。然后,打开 MetaMask,点击 Import tokens 按钮,并将合约地址粘贴到 Token contract address 字段中。MetaMask 将自动获取代币符号和小数位数。点击 NextImport,你的代币将被添加到钱包中;它将在 Metamask 的资产部分下可用。

Metamask Custom Token

结论

恭喜你成功在以太坊 Sepolia 测试网上创建了自己的代币!

如果你想了解更多关于智能合约部署的内容,你可能想查看这些 QuickNode 指南:

你还可以探索这些不同的 QuickNode 指南部分:

订阅我们的 新闻通讯 以获取更多关于 Web3 和区块链的文章和指南。如果你有任何问题或需要进一步帮助,请随时加入我们的 Discord 服务器或使用下面的表格提供反馈。通过关注我们的 Twitter (@QuickNode) 和我们的 Telegram 公告频道 保持最新信息。

我们 ❤️ 反馈!

让我们知道 如果你有任何反馈或新主题的请求。我们很乐意听取你的意见。

  • 原文链接: quicknode.com/guides/eth...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。