# Директивы
Скрипт Ride должен начинаться с директив для компилятора. Директивы определяют формат скрипта, а также доступные скрипту встроенные функции, структуры и переменные.
Формат директивы:
{-# НАЗВАНИЕ_ДИРЕКТИВЫ ЗНАЧЕНИЕ #-}
# Список директив
Название директивы | Описание | Возможные значения |
---|---|---|
STDLIB_VERSION | Версия Стандартной библиотеки | 8 : доступна с момента активации фичи № 22 “Light Node”7 : доступна с момента активации фичи № 19 “Block Reward Distribution”6 : доступна с момента активации фичи № 17 “Ride V6, MetaMask support”5 : доступна с момента активации фичи № 16 “Ride V5, dApp-to-dApp invocations”4 : доступна с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions” |
CONTENT_TYPE | Содержание скрипта | DAPP — скрипт представляет собой набор определений и содержит функции, которые можно вызвать с другого аккаунта.EXPRESSION — скрипт представляет собой логическое выражение, используемое для верификации транзакций |
SCRIPT_TYPE | Использование скрипта | ACCOUNT — скрипт прикреплен к аккаунтуASSET — скрипт прикреплен к ассетуLIBRARY — скрипт может быть подключен в другие скрипты в качестве библиотеки |
IMPORT | Подключенные библиотеки | Имена библиотек, сохраненных в Waves IDE |
# Примеры директив
Для скрипта dApp:
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
Для скрипта аккаунта:
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE EXPRESSION #-}
{-# SCRIPT_TYPE ACCOUNT #-}
Для скрипта ассета:
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE EXPRESSION #-}
{-# SCRIPT_TYPE ASSET #-}
Для скрипта-библиотеки:
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE LIBRARY #-}
{-# SCRIPT_TYPE ACCOUNT #-}
Не все комбинации директив допустимы. Следующий пример не будет работать, поскольку тип содержания DAPP
допустим только для аккаунтов:
# Неправильный пример, не будет работать
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ASSET #-}