June 6, 2022

Solidity

Урок 1

Код в Solidity помещают внутри контрактов. contract — это базовый блок для создания приложений на Ethereum. Все переменные и функции принадлежат контракту, он — отправная точка проекта.

pragma solidity ^0.4.19;

contract HelloWorld {

}

Переменные состояния записываются в хранилище контракта. Это означает, что они сохраняются в блокчейне Ethereum, как в базе данных.

Пример:
contract Example {
  // Контракт навсегда сохранен в блокчейне 
  uint myUnsignedInteger = 100;
}

В этом примере контракта мы создали uint под названием myUnsignedInteger и присвоили ему значение 100.

Тип данных uint — это целые числа без знака, то есть их значение не может быть отрицательным. Еще есть тип данных int для целых чисел со знаком.

Примечание: в Solidity uint используют как синоним для uint256, 256-битного целого числа без знака. Можно задать uint с меньшим количество битов — uint8, uint16, uint32 и.т.д. Но обычно используют просто uint, кроме особенных случаев

Математика в Solidity довольна проста. Операции точно такие же, как в большинстве языков программирования:

  • Сложение: x + y
  • Вычитание: x - y,
  • Умножение: x * y
  • Деление: x / y
  • Модуль и остаток от деления: x % y (например, 13 % 5 будет равно 3, если разделить 13 на 5, в остатке 3)

Solidity поддерживает экспоненциальные операции exponential operator — возведение в степень (например "x в степени y", x^y):

string - строка

structs - структуры (более сложный тип данных)

В Solidity есть два типа массивов: фиксированный и динамический:

function - функция

event - событие

Событие — это способ, которым контракт сообщает внешнему интерфейсу приложения, что в блокчейне произошло некое событие. Интерфейс может «услышать» определенные события и выполнить заданное действие по его наступлении.

address - адреса кошелька ефира

mapping - отображения