Примеры контрактов в Solidity | OTUS

Примеры контрактов в Solidity

Мы уже говорили о том, что такое Solidity и когда этот язык используется. Теперь давайте приведем ряд примеров. Один из примеров -- хранилище.

Пример хранилища

Screenshot_1-20219-9b801e.png

Здесь uint storedData объявляет переменную состояния, которая названа storedData типа uint (беззнаковое целое значение, 256 бит). Позиция переменной определяется компилятором автоматически. Задействованные функции set и get применяются в целях получения значения переменной и ее изменения.

Пример подвалюты

Screenshot_2-20219-6bbf9b.png

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

Идем дальше. Специальная функция Coin -- это конструктор, выполняемый в процессе создания контракта, причем эту функцию впоследствии вызывать нельзя. Хранит она адрес лица, который создает договор вместе с tx и block, что касается msg, то она является волшебной глобальной переменной, включающей в себя ряд свойств, предоставляющих доступ к миру уже за пределами контракта. Функция queryBalance объявляется в качестве постоянной, в результате чего изменение состояния контракта не позволяется (но учтите, что это не принудительно).

Также стоит добавить, что в языке программирования Solidity возвращаемые параметры проименованы, то есть, по сути, создают локальную переменную. Это значит, что для возврата баланса можно просто использовать balance = balances[addr]; без return. Ну а такие события, как Send, дают возможность внешним клиентам осуществлять в блокчейне более эффективный поиск.

Хотите знать про Solidity больше? Добро пожаловать на специализированный курс в Otus!

По материалам https://ru.wikipedia.org/wiki/Solidity и https://github.com/ethereum/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто