面向初学者 Web3 开发者的以太坊代币开发

本博客为 Web3 开发初学者提供简单的分步指南,介绍如何使用 OpenZeppelin、Hardhat、Infura 和 MetaMask 在以太坊区块链上开发和部署 ERC-20 代币,包括部署到 Linea 测试网。

4 分钟阅读
面向初学者 Web3 开发者的以太坊代币开发

作为 web3 开发的初学者,开发和部署自己的代币是开始构建链上软件、提升 Solidity 技能并了解 web3 开发生命周期最受欢迎的方式之一。

在以太坊中,存在多种代币标准,这些标准是代币必须遵循的预定义规则集,旨在确保与以太坊网络及其他 dapp 的兼容性、合规性和互操作性。

这些标准包括:用于同质化代币的 ERC-20、用于非同质化代币(NFT)的 ERC-721、用于多代币类型的 ERC-1155、用于高级代币功能的 ERC-777、用于证券型代币的 ERC-1400,以及用于代币化金库的 ERC-4626。

在本文中,我们将借助 OpenZeppelin 开发一个 ERC-20 代币。OpenZeppelin 是一个提供安全且经过测试的标准智能合约模板实现的库。我们将逐步介绍如何搭建开发环境、编写代币合约,并将其部署到 Linea 二层网络上。

第一步:使用 Hardhat 搭建开发环境

在开始开发以太坊代币之前,你需要先搭建开发环境。本文将使用 Hardhat。请按照以下步骤操作:

  1. 安装 Node.js 和 npm:Node.js 是一个 JavaScript 运行时环境,npm 是其包管理器。请从 Node.js 官方网站 下载并安装。

  2. 创建新的 Hardhat 项目:打开终端,为你的项目创建一个新目录并进入该目录。然后运行:


mkdir my-token

cd my-token

npm init -y

npm install --save-dev hardhat

npx hardhat
复制
  1. 安装必要的 Hardhat 插件和 OpenZeppelin 合约


npm install @nomiclabs/hardhat-ethers ethers @openzeppelin/contracts
复制

第二步:创建你的以太坊代币

按照以下步骤创建一个简单的 ERC-20 代币:

  1. 创建代币合约:在你的 Hardhat 项目中,进入 contracts 目录并创建一个名为 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);

    }

}
复制

该智能合约使用 OpenZeppelin 的库创建了一个名为"MyToken"、符号为"MTK"的 ERC-20 代币。部署后,它将铸造由部署者指定的初始代币供应量,并将其分配到部署者的地址。

  1. 编写部署脚本:在 scripts 目录中,创建一个名为 deploy.js 的新文件,并添加以下代码以部署你的合约:


async function main() {

  const [deployer] = await ethers.getSigners();

  console.log("Deploying contracts with the account:", deployer.address);

  const MyToken = await ethers.getContractFactory("MyToken");

  const myToken = await MyToken.deploy(1000000);

  console.log("MyToken deployed to:", myToken.address);

}

main()

  .then(() => process.exit(0))

  .catch((error) => {

    console.error(error);

    process.exit(1);

  });
复制

上述脚本使用 Hardhat 和 ethers.js 部署"MyToken"智能合约,并以 1,000,000 个代币的供应量进行初始化。它会获取部署者的地址并完成合约部署。

  1. 在本地编译并部署合约:在终端中,将合约编译并部署到 Hardhat 提供的本地区块链:


npx hardhat compile

npx hardhat run scripts/deploy.js --network localhost
复制

第三步:将代币合约部署到 Linea 测试网

现在我们已经在本地开发并部署了 ERC-20 代币,接下来是使用 Infura 和 MetaMask 将其部署到 Linea 测试网的时候了。按照以下步骤让你的代币在 Linea 测试网上线。

  1. 注册 Infura 账户:Infura 提供对各种区块链网络及其测试网的便捷访问。创建一个新项目,从支持的网络菜单中选择 Linea Sepolia 测试网,并复制项目 ID。

  2. 配置 MetaMask:打开你的 MetaMask 钱包,进入网络设置部分。在下拉菜单中,确保已开启"显示测试网络"选项,然后选择 Linea Sepolia 测试网。

  3. 获取 Linea Sepolia ETH:部署合约时,你需要 Linea Sepolia ETH 来支付 gas 费用。你可以访问 Linea Sepolia 官方水龙头 获取一些 Linea ETH。

  4. 更新 Hardhat 配置:在你的 Hardhat 项目中,更新 hardhat.config.js 以包含 Linea 测试网配置:


require("@nomiclabs/hardhat-ethers");

require("dotenv").config();

module.exports = {

  solidity: "0.8.0",

  networks: {

    lineaTestnet: {

      url: `https://linea-sepolia.infura.io/v3/${process.env.INFURA_PROJECT_ID}`,

      accounts: [`0x${process.env.PRIVATE_KEY}`],

      chainId: 59141

    }

  }

};
复制

确保你的 .env 文件包含必要的环境变量:


INFURA_PROJECT_ID=your_infura_project_id

PRIVATE_KEY=your_private_key
复制
  1. 将合约部署到 Linea Sepolia 测试网

现在,运行以下命令将你的代币合约部署到 Linea 测试网:


npx hardhat compile

npx hardhat run scripts/deploy.js --network lineaTestnet
复制

该脚本将使用连接到 MetaMask 的账户,把你的 ERC-20 代币合约部署到 Linea 测试网。

借助 MetaMask Developer 进阶你的 web3 dapp 开发

通过掌握以太坊代币开发的基础知识、搭建开发环境并遵循最佳实践,你可以成功开发并部署自己的以太坊代币。无论是创建新的加密货币还是将资产代币化,以太坊都提供了将你的想法付诸实现所需的工具和生态系统。

访问 MetaMask 开发者门户,探索更多高级开发需求,例如以太坊登录(SIWE)、对 EIP-6963 的支持,以及通过 Snaps 与 MetaMask 的无缝集成。该门户提供全面的工具套件、API 和 SDK,旨在简化用户引导流程,帮助开发者构建独特的、无需许可的钱包连接,以及专为 MetaMask 用户量身打造的 dapp 内体验。

AI 翻译。可能包含错误。请务必核实信息。

评价此翻译
  • Kingsley Okonkwo
    Kingsley Okonkwo

    Kingsley 是一位经认证的以太坊区块链开发者,现任 Consensys 技术写作工程师,专注于开发者工具领域。加入 Consensys 之前,Kingsley 曾在 GigsterBraintrust 等多个平台担任自由职业后端开发者。他拥有 5 年软件开发经验,熟练掌握 JavaScript(Node.js 和 React)、GoLang、SQL 及 Docker 等技术工具。Kingsley 擅长撰写分步教程和操作指南,善用最新 Web3 技术帮助开发者构建更优质的 dapp。他目前定居迪拜,业余时间喜欢打篮球和踢足球。

    阅读所有文章