Создание токена ERC20/BEP20 без библиотек с тестированием (часть 1)

Цель этого руководства — продемонстрировать создание токена, соответствующего стандарту ERC20. Код не проверяется и не должен использоваться в производстве.

Требования:

  • Базовые знания о solidity.
  • Интернет-браузер.

Если вы совсем новичок в solidity, вы можете ознакомиться с этими ресурсами: ethereum.org или, если вы предпочитаете видео, как я, вы можете посмотреть Solidity Programmer на youtube.

Давайте начнем кодить, перейдите из браузера на https://remix.ethereum.org.

IDE Remix позволяет разрабатывать, развертывать и администрировать смарт-контракты для блокчейн типа Ethereum.

В remix мы создадим новый файл в нашей рабочей области, назовем его RawToken.sol

Пояснения:

1- Мы начали с указания лицензии и версии solidity, на которой мы хотим писать[1].

2- Мы определили события, которые будут испускаться в цепочку при выполнении некоторых действий над нашим токен-контрактом.

  • Approval — испускается, когда счет изменяет сумму, которую другой счет может потратить со своего баланса. Например, когда смарт-контракт должен автоматически перевести сумму с вашего счета на свой.

  • Transfer — выдается при успешном переводе токена.

3- Предполагается, что эти значения не будут меняться в течение всего срока действия нашего контракта. (Это требование специфично для нашего примера контракта).

4- Мы отслеживаем некоторые переменные, относящиеся к переводам и балансу.

5- Конструктор
Во время конструирования нашего контракта мы предоставили два аргумента, а также зачислили все нужные нам токены на счет развертывателя.

6- Набор функций, которые возвращают переменные и/или константы, доступные только для чтения.

7- Набор функций, которые изменяют состояние нашего контракта с токенами.

Развертывание

1- Токен развертывается в локальной виртуальной среде, предоставляемой remix IDE.
2- Для развертывания контракта будет использоваться учетная запись, также предоставляемая remix, начинающаяся с 0x5B3 и заканчивающаяся eddC4.
3- Аргументы конструктора предоставляются во время построения контракта. Здесь мы майним ровно 5 миллионов токенов и попросили, чтобы в контракте использовалось 9 десятичных дробей.

4- Функция balanceOf возвращает баланс развертывателя, который в нашем случае является общим запасом токенов, поскольку мы «отчеканили» это количество развертывателю внутри конструктора контракта.
5- decimals возвращает правильное значение 9.
6- name возвращает правильное значение ERC20 Token.
7- symbol возвращает правильное значение «T-O-K-E-N».
8- totalSupply возвращает общее количество токенов, равное количеству, отчеканенному развертывателю, описанному ранее.

Заключение:
В этом руководстве показано, как создать токен, соответствующий стандарту ERC20. Его не рекомендуется использовать в производстве, поскольку существующие реализации, такие как openzeppelin, прошли проверку боем и аудитом в различных проектах.

В следующей статье я перенесу код в VSCode и буду использовать среду hardhat для компиляции, тестирования и развертывания.

Ссылки:

  • Документация Solidity
  • Проект Remix
  • Openzeppelin

Оцените статью
Procodings.ru
Добавить комментарий