Разработка токенов Ethereum для начинающих Web3-разработчиков

Это руководство для начинающих разработчиков web3: как создать и развернуть токен ERC-20 на блокчейне Ethereum с помощью OpenZeppelin, Hardhat, Infura и MetaMask, включая деплой в тестовую сеть Linea.

4 мин чтения
Разработка токенов Ethereum для начинающих Web3-разработчиков

Являясь новичком в разработке web3, создание и развёртывание собственного токена — один из самых популярных способов начать разработку on-chain программного обеспечения, улучшить навыки работы с Solidity и понять жизненный цикл разработки в web3.

В Ethereum существуют различные стандарты токенов — заранее определённые наборы правил, которым должны следовать токены для обеспечения совместимости, соответствия требованиям и интероперабельности с сетью Ethereum и другими dapp.

Эти стандарты включают ERC-20 для взаимозаменяемых токенов, ERC-721 для невзаимозаменяемых токенов (NFT), ERC-1155 для мультитокенов, ERC-777 для расширенных функций токенов, ERC-1400 для токенов ценных бумаг и ERC-4626 для токенизированных хранилищ.

В этом блоге мы разработаем токен ERC-20, используя OpenZeppelin — библиотеку, предоставляющую безопасные и проверенные реализации стандартных шаблонов смарт-контрактов. Мы пройдём через настройку среды разработки, написание контракта токена и его развёртывание в сети второго уровня Linea.

Шаг 1: Настройте среду разработки с помощью Hardhat

Прежде чем приступить к разработке токена Ethereum, необходимо настроить среду разработки. В этом блоге мы будем использовать 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
Копировать

Шаг 2: Создайте свой токен Ethereum

Следуйте этим шагам для создания простого токена 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);

    }

}
Копировать

Этот смарт-контракт создаёт токен ERC-20 с именем «MyToken» и символом «MTK», используя библиотеку OpenZeppelin. При развёртывании он выпускает начальное количество токенов, указанное разработчиком, и присваивает их адресу разработчика.

  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);

  });
Копировать

Приведённый выше скрипт развёртывает смарт-контракт «MyToken» с помощью Hardhat и ethers.js, инициализируя его с объёмом в 1 000 000 токенов. Он получает адрес разработчика и развёртывает контракт.

  1. Скомпилируйте и разверните контракт локально: В терминале скомпилируйте и разверните контракт в локальном блокчейне, предоставляемом Hardhat:


npx hardhat compile

npx hardhat run scripts/deploy.js --network localhost
Копировать

Шаг 3: Разверните контракт токена в тестовой сети Linea

Теперь, когда мы разработали и развернули наш токен ERC-20 локально, пришло время развернуть его в тестовой сети Linea с использованием Infura и MetaMask. Следуйте этим шагам, чтобы запустить ваш токен в тестовой сети Linea.

  1. Настройте аккаунт Infura: Infura обеспечивает удобный доступ к различным блокчейн-сетям и их тестовым сетям. Создайте новый проект, выберите тестовую сеть Linea Sepolia из меню поддерживаемых сетей и скопируйте ID проекта.

  2. Настройте MetaMask: Откройте кошелёк MetaMask и перейдите в раздел сетей. В выпадающем меню убедитесь, что опция «показывать тестовые сети» включена. Затем выберите тестовую сеть Linea Sepolia.

  3. Получите Linea Sepolia ETH: При развёртывании контракта вам потребуется Linea Sepolia ETH для оплаты комиссий за газ. Вы можете получить Linea ETH, посетив официальный кран Linea Sepolia.

  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
Копировать

Этот скрипт развернёт ваш контракт токена ERC-20 в тестовой сети Linea, используя аккаунт, подключённый к MetaMask.

Развивайте разработку web3 dapp с MetaMask Developer

Освоив основы разработки токенов Ethereum, настроив среду разработки и следуя лучшим практикам, вы сможете успешно разработать и развернуть собственный токен Ethereum. Независимо от того, создаёте ли вы новую криптовалюту или токенизируете актив, Ethereum предоставляет инструменты и экосистему для воплощения ваших идей в жизнь.

Посетите портал MetaMask Developer для решения более сложных задач разработки, таких как Sign-in-with-Ethereum (SIWE), поддержка EIP-6963 и бесшовная интеграция с MetaMask через Snaps. Он предлагает комплексный набор инструментов, API и SDK, разработанных для упрощения онбординга пользователей и предоставления разработчикам возможности создавать уникальные, безразрешительные подключения кошельков и внутренние dapp-сценарии, адаптированные для пользователей MetaMask.

Переведено ИИ. Может содержать ошибки. Пожалуйста, всегда проверяйте информацию.

Оцените перевод
  • Kingsley Okonkwo
    Kingsley Okonkwo

    Kingsley, a certified Ethereum Blockchain developer, serves as a technical writer at Consensys, with a special focus on developer tools. Before joining Consensys, Kingsley worked as a freelance backend developer on sevral platforms including Gigster and Braintrust. Boasting 5 years of software development experience, he's proficient with tools such as JavaScript (Node.js & React), GoLang, SQL, and Docker. Kingsley excels in producing step-by-step tutorials and how-to guides, utilizing the latest in web3 technology to help fellow developers build better dapps. Currently based in Dubai, Kingsley enjoys playing basketball and soccer in his free time

    Читать все статьи