
Как создать и развернуть токен 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 и за его пределами.
Оригинал