# Типы скриптов
Существует три типа скриптов:
- dApp-скрипт — позволяет определить вызываемые (сallable) функции, которые могут быть вызваны с других аккаунтов, принимать платежи в пользу dApp и выполнять различные действия на блокчейне. Кроме того, dApp-скрипт может содержать функцию-верификатор, которая разрешает или отклоняет транзакции и ордера, отправляемые от имени аккаунта dApp.
- Скрипт аккаунта — разрешает или отклоняет транзакции и ордера, отправляемые от имени аккаунта (то есть работает аналогично функции-верификатору dApp-скрипта).
- Скрипт ассета — разрешает или отклоняет транзакции с участием ассета.
Особенности каждого типа скрипта представлены в таблице.
# | dApp-скрипт | Скрипт аккаунта | Скрипт ассета |
---|---|---|---|
Директивы | {-# CONTENT_TYPE DAPP #-} {-# SCRIPT_TYPE ACCOUNT #-} | {-# CONTENT_TYPE EXPRESSION #-} {-# SCRIPT_TYPE ACCOUNT #-} | {-# CONTENT_TYPE EXPRESSION #-} {-# SCRIPT_TYPE ASSET #-} |
Содержание скрипта | Набор определений | Логическое выражение | Логическое выражение |
Переменная this | Структура Address с aдресом dApp | Структура Address с aдресом смарт-аккаунта | Структура Asset |
Проверяемая транзакция или ордер | Проверка доступна только в функции-верификаторе. Аннотация функции-верификатора задает имя переменной, содержащей исходящую транзакцию или ордер, например: @Verifier(tx) | Встроенная переменная tx: Transaction|Order — исходящая транзакция или ордер | Встроенная переменная tx: Transaction — транзакция с участием ассета.Проверка ордера недоступна |
Доступность подтверждений (proofs) | • Доступны подтверждения исходящей транзакции или ордера в функции-верификаторе. • Недоступны подтверждения транзакции вызова скрипта в вызываемой функции | Доступны | Недоступны |
Доступность данных блокчейна | • Доступны в вызываемой функции • Доступны в функции-верификаторе при проверке транзакции • Недоступны в функции-верификаторе при проверке ордера | • Доступны при проверке исходящей транзакции • Недоступны при проверке ордера | Доступны |