Как создать и развернуть токен ERC-20 на Ethereum sepolia testnet

Как создать и развернуть токен ERC-20 на Ethereum sepolia testnet

17 июня 2025 г.

Token ERC-20-это громкий цифровой актив на блокчейне Ethereum, который следует за стандартным интерфейсом (с такими функциями, как функцииtotalSupplyВbalanceOfВtransfer, и т. д.). Стандарт позволяет токенам можно использовать в кошельках и обменах. Разработчики тестируют контракты, прежде чем использовать REAL ETH в TestNet - сеть Blockchain Sandbox со бесплатным эфиром «Play».

Sepolia testnet в настоящее время является основной тестовой сети Ethereum: она активно поддерживается, стабильно и использует доказательство в качестве Mainnet. Sepolia дает разработчикам доверие, позволяя им «взаимодействовать с блокчейном, прежде чем рисковать реальными деньгами». Поставщики узлов, такие как GetBlock, также полезны для разработки Ethereum. GetBlock-это блокчейн как услуга (BAAS), который обеспечивает мгновенный доступ API к полным узлам для Ethereum и многих других цепей.

На практике GetBlock позволяет вам получить уже заправленную конечную точку RPC (HTTP URL) в Сеполию, не используя свой собственный узел. Например, после регистрации вы получаете URLwss://go.getblock.io/1ecbe979e63f420fb1cea042893xxxxx, который вы можете вставить в свои инструменты. Это чрезвычайно удобно для тестирования и развертывания.

Настройка среды разработки

Во -первых, установить общую среду разработки. Убедитесь, что у вас установлены Node.js и NPM (nodejs.org), чтобы вы могли установить пакеты JavaScript. Вам также понадобится редактор кода (например, код VS), кошелек (например, Metamask) и некоторые Sepolia ETH (используйте кран - например,,GetBlock's Faucet) Двумя самыми популярными средами для разработки контракта - это хардхат и ремикс:

  • Хардхат. Местная среда развития. Он заботится о таких задачах, как компиляция и развертывание контрактов. Hardhat - это среда разработки для программного обеспечения Ethereum, которая помогает вам редактировать, компилировать, тестировать и развернуть контракты. Начнем с того, что откройте терминал в каталоге вашего проекта и запустите:
npm init -y
npm install --save-dev hardhat
npx hardhat         # follow prompts to create a basic project

Это создает жесткий проект, где вы можете написать контракты (вcontracts/) и сценарии (вscripts/)

  • Remix IDE. IDE на основе браузера. Remix никогда не должен быть установлен вами. Вы можете писать, компилировать и развернуть контракты со встроенным пользовательским интерфейсом. Выберите среду «инъецированного Web3» и свяжите Metamask для развертывания в Sepolia. Remix удобен для быстрой оценки или тех, кто предпочитает графический интерфейс.

Вам также потребуется библиотека контрактов Openzeppelin для шаблонов ERC-20. Openzeppelin предоставляет проверенный код смарт -контракта, такой как базовый контракт ERC20. Вот базовый пример ERC-20:

// 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») и Symbol («MTK») и монетные дворыinitialSupplyтокены для развертывателя. Вы можете настроить имя, символ и первоначальное снабжение по желанию. Поскольку вся логика ERC-20 унаследована, вам не нужно писать какие-либо стандартные функции самостоятельно.

Написание контракта на ERC-20 в солидности

Теперь давайте напишем контракт на токен. В вашем проектеcontracts/папка (или в ремиксе), создайте файл какMyToken.solПолем Используйте ERC20 Openzeppelin, как показано:

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

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

contract MyToken is ERC20 {
    constructor() ERC20("MyToken", "MTK") {
        // Mint 1,000,000 tokens to the deployer
        _mint(msg.sender, 1000000 * (10 ** decimals()));
    }
}

Это делает следующее:ERC20конструктор устанавливает токенимя«mytoken» исимвол«MTK». А_mintзвонок в конструкторе создает 1 000 000 жетонов (скорректированнымdecimals(), который по умолчанию 18) и назначает их по адресу развертывателя. Поскольку контракт наследует все функции ERC-20 от OpenZeppelin, вы автоматически получаетеtotalSupply()ВbalanceOf()Вtransfer()Вapprove()и т. д. бесплатно. Короче говоря, вам нужно было написать только несколько строк кода.

Использование GetBlock для подключения к Sepolia

Перед развертыванием настройте сетевое соединение.Получитьделает это легко. Создайте бесплатную учетную запись на getblock.io и генерируйте конечную точку дляEthereum SepoliaПолем GetBlock даст вам URL JSON-RPC, как:

https://go.getblock.io/<YOUR_ACCESS_TOKEN>

Этот URL -адрес является вашей полной конечной точкой узла для Sepolia. Например, документация GetBlock показывает использование этого URL -адреса с ID цепочки 11155111 для Sepolia. В хардхате вы добавите запись сети вhardhat.config.jsИспользуя этот URL. Например (используя общую конфигурацию GetBlock):

const { getblock } = require("./getblock.config.js");
module.exports = {
  defaultNetwork: "sepolia",
  networks: {
    sepolia: {
      url: getblock.shared.eth.sepolia.rpc[0].go() 
      // this will yield something like "https://go.getblock.io/ACCESS_TOKEN"
    }
  },
  solidity: "0.8.0",
};

В качестве альтернативы, вы можете жестко кодировать свой URL -адрес и закрытый ключ учетной записи:

module.exports = {
  solidity: "0.8.0",
  networks: {
    sepolia: {
      url: "https://go.getblock.io/<YOUR_ACCESS_TOKEN>",
      accounts: ["0xYOUR_PRIVATE_KEY"]
    }
  }
};

С помощью этой конфигурации Hardhat знает, как транслировать транзакции в Sepolia через узлом Getblock. Если вы работаете с Remix, вы можете настроить пользовательскую сеть в Metamask: введите «имя сети» в качестве Ethereum Sepolia Testnet, ID цепочки 11155111 и RPC URL в качестве конечной точки GetBlock. Наконец, вам понадобится тест Sepolia, чтобы заплатить за газ. Отправьте себе ~ 0,1 Sepoliaeth, используя кран (кран getblock).

Развертывание контракта на Сеполию

С готовыми к контракту, пришло время для развертывания. Два общих подхода:

  • Скрипт Хардхат. Создайте скрипт развертывания, например,scripts/deploy.js, в вашем проекте. Пример с ethers.js (хардхат поставляется сethersвстроенный):
async function main() {
  const [deployer] = await ethers.getSigners();
  console.log("Deploying with account:", deployer.address);

  const Token = await ethers.getContractFactory("MyToken");
  // If your constructor requires an initial supply, pass it here.
  const token = await Token.deploy();
  console.log("Token deployed at address:", token.address);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });

Сохраните файл и запустите Hardhat для развертывания в Sepolia:

npx hardhat run scripts/deploy.js --network sepolia

При успехе Hardhat печатает развернутый адрес контракта. Например, типичный сценарий развертывания делает:

const HelloWorld = await ethers.getContractFactory("HelloWorld");
const contract = await HelloWorld.deploy();
console.log("Contract deployed at:", contract.address);

Для вашего примера замените "HelloWorld" с "MyToken"(и включите конструктор ARGS, если есть).

  • Ремикс. Составьте контракт в Remix, затем перейдите на вкладку «Развернуть и запустить транзакции». Выберите «Инъецированная веб -3» в качестве среды (которая доступна через Metamask). Убедитесь, что ваша метамаска находится в сети Sepolia, а затем развернут дляMyTokenдоговор. Подтвердите транзакцию в Metamask. Remix покажет развернутый контракт в «развернутых контрактах».

Любой метод будет развернуть транзакцию в Сеполии. Вы можете просто скопировать адрес контракта с вывода.

Проверка и взаимодействие с токеном

После развертывания осмотрите контракт и поиграйте с ним:

  • Осмотрите на Sepolia Etherscan. Посетите Sepolia Etherscan и найдите адрес вашего контракта. Используйте кнопку «Проверить и публиковать», чтобы загрузить источник солидности. Самый простой маршрут - через пользовательский интерфейс Etherscan's: посетите вкладку контракта и нажмите «Проверить и публиковать». Вам понадобится та же версия компилятора и любые аргументы для конструктора (если вы предоставили первоначальное предложение). После подтверждения ваш исходный код и ABI можно просматривать любое из Etherscan. Еще одна альтернатива - плагин Hardhat EthersCan, установив ключ API вhardhat.config.jsНапример:
etherscan: {
  apiKey: "YOUR_ETHERSCAN_API_KEY"
}
```. Then Hardhat can automatically verify contracts. 

  • Взаимодействовать с контрактом. Теперь вы можете вызвать функции ERC-20. На Etherscan на странице «Проверенный контракт» отображается интерфейс «чтение контракта» и «Записать контракт». Например, вызовname()илиsymbol()Чтобы увидеть имя вашего токена. В ремиксе или любом скрипте Web3 вы можете сделать:
let token = await ethers.getContractAt("MyToken", "0xYourTokenAddress");
console.log(await token.name()); // e.g. "MyToken"

Если вы используете пользовательский интерфейс Remix, нажмите развернутый контракт, нажмите кнопки «Функции» и т. Д. Если вы нажмете функцию «Имя» в ремиксе, вы увидите свое пользовательское имя токена, которое вы определили.

Вы также можете включить токен в свой кошелек Metamask. Возьмите адрес контракта и в Metamask выберите импортные токены, вставьте адрес, и Metamask автоматически заполнит для вас символ токена. Теперь вы увидите свой новый токен в активах вашего кошелька (с вашим балансом Sepolia).

Следуя этим шагам, вы развернули живой токен ERC-20 на Sepolia. Вы можете отправить его, проверить балансы и в значительной степени относиться к нему как к реальному токену (используя поддельный Eth для газа).

Переход от Testnet в Ethereum mainnet

После того, как вы закончите в Sepolia, вы можете перенести свой токен в Ethereum Mainnet. Процесс такой же с некоторыми различиями: вы будете работать с Real ETH в своем кошельке (плата за газ реальна), и вы должны дважды проверить свой код (рассмотрите аудиты). Вhardhat.config.js, добавить или изменитьmainnetСеть с конечной точкой GetBlock Mainnet. Например:

networks: {
  mainnet: {
    url: getblock.shared.eth.mainnet.rpc[0].go(), // GetBlock mainnet RPC
    accounts: ["0xYOUR_PRIVATE_KEY"]
  }
}

GetBlock также предоставляет Ethereum Mainnet узлы, поэтому вы можете настроить URL -адрес RPC MainNet на панели панели. Вы можете получить доступ к узлам Mainnet и развернуть контракт на проливку на Ethereum так же, как и на Testnet. Идентификатор цепочки Mainnet - это 1. И развернуть с помощью Hardhat:

npx hardhat run scripts/deploy.js --network mainnet

После развертывания проверьтеEtherscan.io(Mainnet) Использование того же процесса «Проверка и публикация» (или плагин etherscan от Hardhat). После проверки ваш токен живет на Ethereum Mainnet.

Короче говоря, наиболее важными шагами были:

  • Напишите свой контракт с ERC-20
  • Скомпилируйте это
  • Настройка Hardhat (или Remix) для использования GetBlock Sepolia RPC
  • Развернуть контракт
  • Проверять

Служба GetBlock упрощенный доступ к узлу: вам не нужно было запускать свой собственный узел или инфраструктуру снабжения - вы просто подключили HTTP UR. Все эти шаги и инструменты могут быть использованы новичком для развертывания, разработки и поддержания токена ERC-20 в тестах Ethereum и за его пределами.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE