Урок 3

Написание базового смарт-контракта

Переменные, функции и модификаторы являются основными компонентами в умных контрактах Solidity. Solidity имеет два типа переменных: переменные состояния и локальные переменные.

В этом разделе мы обсудим процесс написания базового смарт-контракта с использованием Solidity. Мы рассмотрим основные компоненты, такие как переменные, функции и модификаторы. Затем мы рассмотрим пример реализации простого токенного контракта.

Переменные, функции и модификаторы

  • Переменные: В Solidity существуют два типа переменных - переменные состояния и локальные переменные. Переменные состояния постоянно хранятся в блокчейне, в то время как локальные переменные временные и существуют только в рамках функции.
  • Функции: Функции - это строительные блоки смарт-контрактов. Они используются для выполнения конкретных задач, таких как создание транзакций и выполнение пользовательской логики. Функции могут иметь входные параметры и возвращаемые значения, обеспечивая большую настраиваемость и гибкость.
  • Модификаторы: Модификаторы уникальны для Solidity и используются для изменения поведения функции. Они могут улучшить читаемость и управляемость кода, а также использоваться для аутентификации входящих значений или условного выполнения вызываемой функции.

Пример 1: Внедрение простого токенного контракта

Давайте создадим простой токенный контракт, используя Solidity. Этот контракт позволит пользователям передавать токены между учетными записями и проверять баланс токенов любой учетной записи.

TypeScriptpragma версия ^0.8.0;контракт SimpleToken {    // Объявление переменных состояния    адрес владельца публичный;    картографирование(адрес => uint256) балансы общественности;    // Инициализация токен контракта    конструктор(uint256 начальныйЗапас) {        владелец = msg.sender;        балансы[владелец] = начальныйЗапас;    }    // Функция для передачи токенов    функция передачи(адрес to, uint256 количество) общественный {        требовать(balances[msg.sender] >= количество, "Недостаточный баланс");        балансы[msg.sender] -= количество;        балансы[to] += количество;    }    // Функция для проверки баланса токена учетной записи    функция баланса(адрес учетной записи) общественный вид возращений (uint256) {        вернуть балансы[учетной записи];    }}

В этом контракте у нас есть:

  • Переменные состояниявладелецибалансыдля хранения адреса владельца контракта и балансов токенов всех адресов соответственно.
  • A конструкторфункция, которая устанавливает начальное количество токенов и назначает их владельцу контракта.
  • А перевод функция, позволяющая пользователям переводить токены на другие аккаунты. Он использует метод требоватьутверждение, чтобы убедиться, что отправителю достаточно токенов для передачи.
  • A балансфункция, которая возвращает баланс токена указанного аккаунта.
  • Этот базовый токен контракт демонстрирует, как использовать переменные, функции и модификаторы в Solidity для создания простого, функционального смарт-контракта.

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

TypeScriptpragma solidity ^0.8.0; контракт VotingSystem { отображение (байт32 => uint256) общедоступные votesReceived; байт32[] общедоступные candidateList; конструктор (байт32[] память candidateNames) { candidateList = candidateNames; } функция voteForCandidate (байт32 кандидат) общедоступная { требуется действительный кандидат (кандидат), "Недопустимый кандидат."); votesReceived [кандидат] + = 1; } функция totalVotesFor (байт32 кандидат) общедоступная представление возвращает (uint256) { требуется действительный кандидат (кандидат), "Недопустимый кандидат."); возврат votesReceived [кандидат]; } функция validCandidate (байт32 кандидат) общедоступная представление возвращает (логическое) { для (uint256 i = 0; i < candidateList.length; i++) { если (candidateList [i] == кандидат) { вернуть true; } } вернуть false; }}

В этом примере, Система голосованияконтракт позволяет пользователям голосовать за одного из нескольких кандидатов, позвонив по voteForCandidateфункция. Контракт отслеживает количество полученных голосов за каждого кандидата с помощью полученные голосасопоставление, где ключом является имя кандидата, а значением - количество голосов. candidateListпеременная хранит список допустимых кандидатов. totalVotesForФункцию можно вызвать, чтобы проверить количество голосов, полученных определенным кандидатом, и действительный кандидатФункция проверяет, действителен ли кандидат. Это простой пример того, как на языке Solidity можно создавать децентрализованные приложения с сложной логикой.

Особенности
Переменные, функции и модификаторы являются важными компонентами в умных контрактах Solidity.
Solidity имеет два типа переменных: глобальные переменные и локальные переменные.
Функции используются для выполнения задач и могут иметь входные параметры и возвращаемые значения.
Модификаторы используются для изменения поведения функции и улучшения читаемости и управляемости кода.
Контракт SimpleToken позволяет пользователям передавать токены и проверять балансы токенов.
Контракт SimpleToken демонстрирует использование переменных состояния, конструктора и функций, таких как transfer и balanceOf.
Контракт VotingSystem позволяет пользователям голосовать за кандидатов и отслеживает количество голосов.
Контракт VotingSystem демонстрирует использование отображений, массивов и функций, таких как voteForCandidate, totalVotesFor и validCandidate.

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.
Каталог
Урок 3

Написание базового смарт-контракта

Переменные, функции и модификаторы являются основными компонентами в умных контрактах Solidity. Solidity имеет два типа переменных: переменные состояния и локальные переменные.

В этом разделе мы обсудим процесс написания базового смарт-контракта с использованием Solidity. Мы рассмотрим основные компоненты, такие как переменные, функции и модификаторы. Затем мы рассмотрим пример реализации простого токенного контракта.

Переменные, функции и модификаторы

  • Переменные: В Solidity существуют два типа переменных - переменные состояния и локальные переменные. Переменные состояния постоянно хранятся в блокчейне, в то время как локальные переменные временные и существуют только в рамках функции.
  • Функции: Функции - это строительные блоки смарт-контрактов. Они используются для выполнения конкретных задач, таких как создание транзакций и выполнение пользовательской логики. Функции могут иметь входные параметры и возвращаемые значения, обеспечивая большую настраиваемость и гибкость.
  • Модификаторы: Модификаторы уникальны для Solidity и используются для изменения поведения функции. Они могут улучшить читаемость и управляемость кода, а также использоваться для аутентификации входящих значений или условного выполнения вызываемой функции.

Пример 1: Внедрение простого токенного контракта

Давайте создадим простой токенный контракт, используя Solidity. Этот контракт позволит пользователям передавать токены между учетными записями и проверять баланс токенов любой учетной записи.

TypeScriptpragma версия ^0.8.0;контракт SimpleToken {    // Объявление переменных состояния    адрес владельца публичный;    картографирование(адрес => uint256) балансы общественности;    // Инициализация токен контракта    конструктор(uint256 начальныйЗапас) {        владелец = msg.sender;        балансы[владелец] = начальныйЗапас;    }    // Функция для передачи токенов    функция передачи(адрес to, uint256 количество) общественный {        требовать(balances[msg.sender] >= количество, "Недостаточный баланс");        балансы[msg.sender] -= количество;        балансы[to] += количество;    }    // Функция для проверки баланса токена учетной записи    функция баланса(адрес учетной записи) общественный вид возращений (uint256) {        вернуть балансы[учетной записи];    }}

В этом контракте у нас есть:

  • Переменные состояниявладелецибалансыдля хранения адреса владельца контракта и балансов токенов всех адресов соответственно.
  • A конструкторфункция, которая устанавливает начальное количество токенов и назначает их владельцу контракта.
  • А перевод функция, позволяющая пользователям переводить токены на другие аккаунты. Он использует метод требоватьутверждение, чтобы убедиться, что отправителю достаточно токенов для передачи.
  • A балансфункция, которая возвращает баланс токена указанного аккаунта.
  • Этот базовый токен контракт демонстрирует, как использовать переменные, функции и модификаторы в Solidity для создания простого, функционального смарт-контракта.

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

TypeScriptpragma solidity ^0.8.0; контракт VotingSystem { отображение (байт32 => uint256) общедоступные votesReceived; байт32[] общедоступные candidateList; конструктор (байт32[] память candidateNames) { candidateList = candidateNames; } функция voteForCandidate (байт32 кандидат) общедоступная { требуется действительный кандидат (кандидат), "Недопустимый кандидат."); votesReceived [кандидат] + = 1; } функция totalVotesFor (байт32 кандидат) общедоступная представление возвращает (uint256) { требуется действительный кандидат (кандидат), "Недопустимый кандидат."); возврат votesReceived [кандидат]; } функция validCandidate (байт32 кандидат) общедоступная представление возвращает (логическое) { для (uint256 i = 0; i < candidateList.length; i++) { если (candidateList [i] == кандидат) { вернуть true; } } вернуть false; }}

В этом примере, Система голосованияконтракт позволяет пользователям голосовать за одного из нескольких кандидатов, позвонив по voteForCandidateфункция. Контракт отслеживает количество полученных голосов за каждого кандидата с помощью полученные голосасопоставление, где ключом является имя кандидата, а значением - количество голосов. candidateListпеременная хранит список допустимых кандидатов. totalVotesForФункцию можно вызвать, чтобы проверить количество голосов, полученных определенным кандидатом, и действительный кандидатФункция проверяет, действителен ли кандидат. Это простой пример того, как на языке Solidity можно создавать децентрализованные приложения с сложной логикой.

Особенности
Переменные, функции и модификаторы являются важными компонентами в умных контрактах Solidity.
Solidity имеет два типа переменных: глобальные переменные и локальные переменные.
Функции используются для выполнения задач и могут иметь входные параметры и возвращаемые значения.
Модификаторы используются для изменения поведения функции и улучшения читаемости и управляемости кода.
Контракт SimpleToken позволяет пользователям передавать токены и проверять балансы токенов.
Контракт SimpleToken демонстрирует использование переменных состояния, конструктора и функций, таких как transfer и balanceOf.
Контракт VotingSystem позволяет пользователям голосовать за кандидатов и отслеживает количество голосов.
Контракт VotingSystem демонстрирует использование отображений, массивов и функций, таких как voteForCandidate, totalVotesFor и validCandidate.

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.