Lição 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.

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 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.

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.