Создание ERC-20 токена на Solidity: Урок 4

Что такое Ethereum и ERC-20?

Ethereum — криптовалюта, основанная на технологии блокчейн. Язык Solidity используется для написания смарт-контрактов на Ethereum. Каждая операция в Solidity имеет стоимость в эфире (ETH), оплачивающую вычислительные ресурсы сети.

ERC-20 — стандарт токенов на блокчейне Ethereum. Он предоставляет базовые функции управления токенами:

  • Передача токенов
  • Проверка баланса
  • Разрешение на передачу токенов от имени другого пользователя

Этот стандарт обеспечивает совместимость с децентрализованными приложениями (dApps), биржами и кошельками. Для токенов с уникальными характеристиками используется кастомный контракт. Однако, для стандартной монеты, ERC-20 значительно упрощает процесс.

Создание ERC-20 токена

Для создания токена используется библиотека OpenZeppelin, предоставляющая безопасные реализации стандартов смарт-контрактов.

1. Установка библиотеки:

Установите библиотеку OpenZeppelin через терминал (команда зависит от менеджера пакетов, например, npm install @openzeppelin/contracts).

2. Создание контракта:

Создайте файл (например, ProgerToken.sol) с контрактом, используя импорт библиотек OpenZeppelin. Контракт будет короче кастомного благодаря использованию готового стандарта ERC-20. Конструктор указывает:

  • Название монеты
  • Символ монеты
  • Начальное количество токенов (автоматически вычисляется)

Конструктор вызывает конструктор родительского контракта ERC-20 и создаёт начальное количество токенов, присваивая их создателю контракта. Функции вывода средств и перевода на другой кошелёк реализованы стандартом ERC-20.

3. Обновление файла деплоя:

Обновите файл деплоя (например, ProgerTokenDeployment.js), указав путь к новому контракту (ProgerToken.sol).

4. Компиляция и тестирование:

Скомпилируйте контракт (например, npx hardhat compile).

Затем выполните в терминале:

  • npx hardhat node для запуска локальной сети.
  • npx hardhat run scripts/ProgerTokenDeployment.js —network localhost для тестового деплоя.
  • npx hardhat console —network localhost для запуска консоли.

5. Тестирование функциональности:

В консоли протестируйте базовые функции:

  • Проверьте баланс с помощью token.balanceOf(signer.address).
  • Переведите токены с помощью token.transfer(recipientAddress, amount).

После выполнения этих шагов вы получите функциональный токен в локальной сети, позволяющий проверять баланс и переводить токены.

В этом уроке создан функциональный ERC-20 токен с использованием стандарта ERC-20 и библиотеки OpenZeppelin. Токен пока существует только в локальной сети. Развёртывание в основной сети Ethereum будет показано в последующих уроках.

Что будем искать? Например,программа